zscore#
- scipy.stats.mstats.zscore(a, axis=0, ddof=0, nan_policy='propagate')[source]#
计算 z 分数。
计算样本中每个值的 z 分数,相对于样本的均值和标准差。
- 参数:
- a类数组
一个包含样本数据的类数组对象。
- axisint 或 None,可选
操作所在的轴。默认为 0。如果为 None,则对整个数组 a 进行计算。
- ddofint,可选
标准差计算中的自由度校正。默认为 0。
- nan_policy{‘propagate’, ‘raise’, ‘omit’},可选
定义输入包含 nan 时如何处理。“propagate”返回 nan,“raise”抛出错误,“omit”执行计算时忽略 nan 值。默认为“propagate”。请注意,当值为“omit”时,输入中的 nan 也会传播到输出,但它们不会影响为非 nan 值计算的 z 分数。
- 返回:
- zscore类数组
z 分数,按输入数组 a 的均值和标准差标准化。
另请参阅
numpy.mean
算术平均值
numpy.std
算术标准差
scipy.stats.gzscore
几何标准分数
说明
此函数保留 ndarray 子类,并且也适用于矩阵和掩码数组(它使用 asanyarray 而不是 asarray 作为参数)。
zscore
除了 NumPy 之外,还对 Python Array API Standard 兼容后端提供实验性支持。 请考虑通过设置环境变量SCIPY_ARRAY_API=1
并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。 支持以下后端和设备(或其他能力)的组合。库
CPU
GPU
NumPy
✅
不适用
CuPy
不适用
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
✅
不适用
有关更多信息,请参见支持数组 API 标准。
参考
[1]“标准分数”,维基百科,https://en.wikipedia.org/wiki/Standard_score。
[2]Huck, S. W., Cross, T. L., Clark, S. B, “克服关于 Z 分数的误解”,统计教学,第 8 卷,第 38-40 页,1986 年
示例
>>> import numpy as np >>> a = np.array([ 0.7972, 0.0767, 0.4383, 0.7866, 0.8091, ... 0.1954, 0.6307, 0.6599, 0.1065, 0.0508]) >>> from scipy import stats >>> stats.zscore(a) array([ 1.1273, -1.247 , -0.0552, 1.0923, 1.1664, -0.8559, 0.5786, 0.6748, -1.1488, -1.3324])
沿指定轴计算,使用 n-1 个自由度 (
ddof=1
) 来计算标准差>>> b = np.array([[ 0.3148, 0.0478, 0.6243, 0.4608], ... [ 0.7149, 0.0775, 0.6072, 0.9656], ... [ 0.6341, 0.1403, 0.9759, 0.4064], ... [ 0.5918, 0.6948, 0.904 , 0.3721], ... [ 0.0921, 0.2481, 0.1188, 0.1366]]) >>> stats.zscore(b, axis=1, ddof=1) array([[-0.19264823, -1.28415119, 1.07259584, 0.40420358], [ 0.33048416, -1.37380874, 0.04251374, 1.00081084], [ 0.26796377, -1.12598418, 1.23283094, -0.37481053], [-0.22095197, 0.24468594, 1.19042819, -1.21416216], [-0.82780366, 1.4457416 , -0.43867764, -0.1792603 ]])
一个带有
nan_policy='omit'
的示例>>> x = np.array([[25.11, 30.10, np.nan, 32.02, 43.15], ... [14.95, 16.06, 121.25, 94.35, 29.81]]) >>> stats.zscore(x, axis=1, nan_policy='omit') array([[-1.13490897, -0.37830299, nan, -0.08718406, 1.60039602], [-0.91611681, -0.89090508, 1.4983032 , 0.88731639, -0.5785977 ]])