scipy.stats.
gzscore#
- scipy.stats.gzscore(a, *, axis=0, ddof=0, nan_policy='propagate')[source]#
计算几何标准分数。
计算样本中每个严格正值的几何 z 分数,相对于几何平均值和标准差。从数学上来说,几何 z 分数可以计算为
gzscore = log(a/gmu) / log(gsigma)
其中
gmu
(分别是gsigma
)是几何平均值(分别是标准差)。- 参数::
- **a**array_like
样本数据。
- **axis**int 或 None,可选
要操作的轴。默认值为 0。如果为 None,则对整个数组 a 进行计算。
- **ddof**int,可选
计算标准差时的自由度校正。默认值为 0。
- **nan_policy**{‘propagate’, ‘raise’, ‘omit’},可选
定义如何处理输入中包含 nan 的情况。‘propagate’ 返回 nan,‘raise’ 抛出错误,‘omit’ 执行忽略 nan 值的计算。默认值为 ‘propagate’。请注意,当值为 ‘omit’ 时,输入中的 nan 也将传播到输出,但它们不会影响为非 nan 值计算的几何 z 分数。
- 返回值::
- **gzscore**array_like
几何 z 分数,由输入数组 a 的几何平均值和几何标准差标准化。
注意事项
此函数保留 ndarray 子类,并且也适用于矩阵和掩码数组(它使用
asanyarray
而不是asarray
用于参数)。在版本 1.8 中添加。
参考文献
[1]“Geometric standard score”,维基百科,https://en.wikipedia.org/wiki/Geometric_standard_deviation#Geometric_standard_score.
示例
从对数正态分布中抽取样本
>>> import numpy as np >>> from scipy.stats import zscore, gzscore >>> import matplotlib.pyplot as plt
>>> rng = np.random.default_rng() >>> mu, sigma = 3., 1. # mean and standard deviation >>> x = rng.lognormal(mu, sigma, size=500)
显示样本的直方图
>>> fig, ax = plt.subplots() >>> ax.hist(x, 50) >>> plt.show()
显示由经典 z 分数标准化的样本的直方图。分布已重新缩放,但形状不变。
>>> fig, ax = plt.subplots() >>> ax.hist(zscore(x), 50) >>> plt.show()
演示几何 z 分数的分布已重新缩放并且近似正态
>>> fig, ax = plt.subplots() >>> ax.hist(gzscore(x), 50) >>> plt.show()