code: def _csc_mean_variance_axis0(X):
      """Compute mean, variance and nans count on the axis 0 of a CSC matrix
  
      Parameters
      ----------
      X : sparse CSC matrix
          Input array
  
      Returns
      -------
      mean, variance, nans count
      """
      n_samples, n_features = X.shape
  
      means = cp.empty(n_features)
      variances = cp.empty(n_features)
      counts_nan = cp.empty(n_features)
  
      start = X.indptr[0]
      for i, end in enumerate(X.indptr[1:]):
          col = X.data[start:end]
  
          _count_zeros = n_samples - col.size
          _count_nans = (col != col).sum()
  
          _mean = cp.nansum(col) / (n_samples - _count_nans)
          _variance = cp.nansum((col - _mean) ** 2)
          _variance += _count_zeros * (_mean**2)
          _variance /= n_samples - _count_nans
  
          means[i] = _mean
          variances[i] = _variance
          counts_nan[i] = _count_nans
  
          start = end
      return means, variances, counts_nan
  
file_path: cuml/python/cuml/thirdparty_adapters/sparsefuncs_fast.py
imports: from math import ceil
  from cuml.internals.safe_imports import gpu_only_import_from
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 3 for calling a global function with example usage: _csc_mean_variance_axis0(X) and returns: means,  variances,  counts_nan