scipy.stats.gstd

scipy.stats.gstd(a, axis=0, ddof=1)[源代码]

计算阵列的几何标准差。

几何标准差描述了一组数字的分布,其中几何平均值是首选的。它是一个乘性因子,因此是一个无量纲的量。

它被定义为标准偏差的指数 log(a) 。从数学上讲,总体几何标准偏差可以评估为:

gstd = exp(std(log(a)))

1.3.0 新版功能.

参数
aarray_like

包含示例数据的类似数组的对象。

axisint、tuple或None,可选

要沿其运行的轴。默认值为0。如果没有,则对整个阵列进行计算 a

ddof整型,可选

几何标准差计算中的自由度修正。默认值为1。

退货
ndarray或浮动

几何标准偏差数组。如果 axis 为None或 a 是一个一维数组,返回一个浮点数。

注意事项

由于计算需要使用对数,几何标准差仅支持严格的正值。任何非正值或无穷大值都将引发 ValueError 。几何标准偏差有时与标准偏差的指数混淆, exp(std(a)) 。取而代之的是几何标准差为 exp(std(log(a))) 。的默认值 ddof 与包含其他ddof的函数使用的默认值(0)不同,例如 np.stdnp.nanstd

示例

求对数正态分布样本的几何标准差。请注意,分布的标准差是1,在对数刻度上,它的评估结果约为 exp(1)

>>> from scipy.stats import gstd
>>> rng = np.random.default_rng()
>>> sample = rng.lognormal(mean=0, sigma=1, size=1000)
>>> gstd(sample)
2.810010162475324

计算多维数组和给定轴的几何标准差。

>>> a = np.arange(1, 25).reshape(2, 3, 4)
>>> gstd(a, axis=None)
2.2944076136018947
>>> gstd(a, axis=2)
array([[1.82424757, 1.22436866, 1.13183117],
       [1.09348306, 1.07244798, 1.05914985]])
>>> gstd(a, axis=(1,2))
array([2.12939215, 1.22120169])

几何标准偏差进一步处理掩蔽阵列。

>>> a = np.arange(1, 25).reshape(2, 3, 4)
>>> ma = np.ma.masked_where(a > 16, a)
>>> ma
masked_array(
  data=[[[1, 2, 3, 4],
         [5, 6, 7, 8],
         [9, 10, 11, 12]],
        [[13, 14, 15, 16],
         [--, --, --, --],
         [--, --, --, --]]],
  mask=[[[False, False, False, False],
         [False, False, False, False],
         [False, False, False, False]],
        [[False, False, False, False],
         [ True,  True,  True,  True],
         [ True,  True,  True,  True]]],
  fill_value=999999)
>>> gstd(ma, axis=2)
masked_array(
  data=[[1.8242475707663655, 1.2243686572447428, 1.1318311657788478],
        [1.0934830582350938, --, --]],
  mask=[[False, False, False],
        [False,  True,  True]],
  fill_value=999999)