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.std
和np.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)