code: def _reduction(
      self,
      method_name,
      axis=None,
      dtype=None,
      keepdims=None,
      todense=False,
      **kw,
  ):
      if not todense:
          assert keepdims is None or keepdims is False
  
      if isinstance(axis, tuple):
          assert axis == (0,)
          axis = None
  
      if todense:
          x = self.spmatrix.toarray()
          x = getattr(get_array_module(x), method_name)(
              x, axis=axis, **kw
          )
      else:
          x = getattr(self.spmatrix, method_name)(axis=axis, **kw)
  
      m = get_array_module(x)
      return m.array([x])[0]
  
file_path: mars/mars/lib/sparse/vector.py
imports: from .array import SparseArray, SparseNDArray
  from .core import get_array_module, get_sparse_module, naked, issparse, np, is_cupy
label_desc: Use image node_id 9 for calling the SparseVector obj's underlying member method code with example usage: obj._reduction(method_name, axis, dtype, keepdims, todense) and returns: m