code: def _get_median(data, n_zeros):
      """Compute the median of data with n_zeros additional zeros.
      This function is used to support sparse matrices; it modifies data in-place
      """
      n_elems = len(data) + n_zeros
      if not n_elems:
          return np.nan
      n_negative = (data < 0).sum()
      middle, is_odd = divmod(n_elems, 2)
      data = np.sort(data)
      if is_odd:
          return _get_elem_at_rank(middle, data, n_negative, n_zeros)
      elm1 = _get_elem_at_rank(middle - 1, data, n_negative, n_zeros)
      elm2 = _get_elem_at_rank(middle, data, n_negative, n_zeros)
      return (elm1 + elm2) / 2.0
  
imports: from ....internals import _deprecate_pos_args
  from ....common.array_descriptor import CumlArrayDescriptor
  from ....internals.array_sparse import SparseCumlArray
  from ..utils.validation import FLOAT_DTYPES
  from ..utils.validation import check_is_fitted
  from cuml.internals.mixins import AllowNaNTagMixin, SparseInputTagMixin, StringInputTagMixin
  from ..utils.skl_dependencies import BaseEstimator, TransformerMixin
  from ....thirdparty_adapters import _get_mask, _masked_column_median, _masked_column_mean, _masked_column_mode
  from cuml.internals.safe_imports import gpu_only_import_from
  import cuml
  from cuml.internals.safe_imports import gpu_only_import
  import numbers
  import warnings
  from cuml.internals.safe_imports import cpu_only_import
label_desc: Use image node_id 4 for calling a global function with example usage: _get_median(data, n_zeros) and returns: unknown, np, _get_elem_at_rank