docs: def _missing_values_set_to_nan(values, missing_value, sparse_missing):
      """ Return a copy of values where missing values (equal to missing_value)
      are replaced to nan according. If sparse_missing is True,
      entries missing in a sparse matrix will also be set to nan.
      Sparse matrices will be converted to dense format.
      """
      if sp.issparse(values):
          assert values.shape[0] == 1
      if sparse_missing and sp.issparse(values) and missing_value != 0:
          # Nothing special needs to be done for missing.value == 0 because
          # missing values are assumed to be zero in sparse matrices.
          values_coo = values.tocoo()
          values = values.toarray()[0]
          missing_mask = values == 0
          # fix for possible zero values
          missing_mask[values_coo.col] = False
          values[missing_mask] = np.nan
      elif is_sparse_vector(values):
          values = values.toarray()[0]
      else:
          values = values.copy()
      if not np.isnan(missing_value):
          values[values == missing_value] = np.nan
      return values