code: def gzscore(x, *, axis=0, ddof=1, nan_policy="propagate"):
      """Geometric standard (Z) score.
  
      Parameters
      ----------
      x : array_like
          Array of raw values.
      axis : int or None, optional
          Axis along which to operate. Default is 0. If None, compute over
          the whole array `x`.
      ddof : int, optional
          Degrees of freedom correction in the calculation of the
          standard deviation. Default is 1.
      nan_policy : {'propagate', 'raise', 'omit'}, optional
          Defines how to handle when input contains nan. 'propagate' returns nan,
          'raise' throws an error, 'omit' performs the calculations ignoring nan
          values. Default is 'propagate'.  Note that when the value is 'omit',
          nans in the input also propagate to the output, but they do not affect
          the geometric z scores computed for the non-nan values.
  
      Returns
      -------
      gzscore : array_like
          Array of geometric z-scores (same shape as x).
  
      Notes
      -----
      Geometric Z-scores are better measures of dispersion than arithmetic
      z-scores when the sample data come from a log-normally distributed
      population [1]_.
  
      Given the raw scores :math:`x`, the geometric mean :math:`\\mu_g` and
      the geometric standard deviation :math:`\\sigma_g`,
      the standard score is given by the formula:
  
      .. math:: z = \\frac{log(x) - log(\\mu_g)}{log(\\sigma_g)}
  
      References
      ----------
      .. [1] https://en.wikipedia.org/wiki/Geometric_standard_deviation
  
      Examples
      --------
      Standardize a lognormal-distributed vector:
  
      >>> import numpy as np
      >>> from pingouin import gzscore
      >>> np.random.seed(123)
      >>> raw = np.random.lognormal(size=100)
      >>> z = gzscore(raw)
      >>> print(round(z.mean(), 3), round(z.std(), 3))
      -0.0 0.995
      """
      warnings.warn(
          "gzscore is deprecated and will be removed in pingouin 0.7.0;"
          " use scipy.stats.gzscore instead."
      )
      x = np.asanyarray(x)
      log = np.ma.log if isinstance(x, np.ma.MaskedArray) else np.log
      z = scipy.stats.zscore(
          log(x), axis=axis, ddof=ddof, nan_policy=nan_policy
      )
      return z
  
file_path: pingouin/pingouin/distribution.py
imports: import warnings
  import scipy.stats
  import numpy
  import pandas
  from collections import namedtuple
  from pingouin.utils import _flatten_list
  from pingouin.utils import remove_na, _postprocess_dataframe
label_desc: Use image node_id 1 for calling a global function with example usage: gzscore(x) and returns: z