code: def min_max_axis(X, axis, ignore_nan=False):
      """Compute minimum and maximum along an axis on a CSR or CSC matrix.
  
       Optionally ignore NaN values.
  
      Parameters
      ----------
      X : sparse matrix of shape (n_samples, n_features)
          Input data. It should be of CSR or CSC format.
  
      axis : {0, 1}
          Axis along which the axis should be computed.
  
      ignore_nan : bool, default=False
          Ignore or passing through NaN values.
  
          .. versionadded:: 0.20
  
      Returns
      -------
  
      mins : ndarray of shape (n_features,), dtype={np.float32, np.float64}
          Feature-wise minima.
  
      maxs : ndarray of shape (n_features,), dtype={np.float32, np.float64}
          Feature-wise maxima.
      """
      if sp.issparse(X) and X.format in ("csr", "csc"):
          if ignore_nan:
              return _sparse_nan_min_max(X, axis=axis)
          else:
              return _sparse_min_max(X, axis=axis)
      else:
          _raise_typeerror(X)
  
imports: import numpy
  import scipy.sparse
  from ..utils.validation import _check_sample_weight
  from .sparsefuncs_fast import csc_mean_variance_axis0
  from .sparsefuncs_fast import csr_mean_variance_axis0
  from .sparsefuncs_fast import incr_mean_variance_axis0
label_desc: Use image node_id 18 for calling a global function with example usage: min_max_axis(X, axis, ignore_nan) and returns: _sparse_nan_min_max, _sparse_min_max