docs: def cell_normalize(data):
      """
      Returns the data where the expression is normalized so that the total
      count per cell is equal.
      """
      if sparse.issparse(data):
          data = sparse.csc_matrix(data.astype(float))
          # normalize in-place
          sparse_cell_normalize(data.data,
                  data.indices,
                  data.indptr,
                  data.shape[1],
                  data.shape[0])
          return data
      data_norm = data.astype(float)
      total_umis = []
      for i in range(data.shape[1]):
          di = data_norm[:,i]
          total_umis.append(di.sum())
          di /= total_umis[i]
      med = np.median(total_umis)
      data_norm *= med
      return data_norm