scipy.stats.
percentileofscore#
- scipy.stats.percentileofscore(a, score, kind='rank', nan_policy='propagate')[源代码]#
计算相对于分数列表的分数的百分位数排名。
例如,
percentileofscore
为 80% 表示 a 中 80% 的分数低于给定分数。在存在间隙或并列的情况下,确切的定义取决于可选关键字 kind。- 参数:
- aarray_like
用于与 score 进行比较的一维数组。
- scorearray_like
用于计算百分位数的分数。
- kind{‘rank’, ‘weak’, ‘strict’, ‘mean’}, 可选
指定结果分数的解释。以下选项可用(默认为 ‘rank’)
‘rank’:分数的平均百分比排名。如果有多个匹配项,则对所有匹配分数的百分比排名进行平均。
‘weak’:这种类型对应于累积分布函数的定义。百分位数排名为 80% 表示 80% 的值小于或等于提供的分数。
‘strict’:类似于“weak”,只是只计算严格小于给定值的值。
‘mean’: “weak” 和 “strict” 分数的平均值,通常用于测试。请参阅 https://en.wikipedia.org/wiki/Percentile_rank
- nan_policy{‘propagate’, ‘raise’, ‘omit’}, 可选
指定如何处理 a 中的 nan 值。以下选项可用(默认为 ‘propagate’)
‘propagate’:返回 nan(对于 score 中的每个值)。
‘raise’:抛出错误
‘omit’:执行计算时忽略 nan 值
- 返回:
- pcosfloat
相对于 a 的分数百分位位置 (0-100)。
示例
四分之三的给定值低于给定分数
>>> import numpy as np >>> from scipy import stats >>> stats.percentileofscore([1, 2, 3, 4], 3) 75.0
在存在多个匹配项时,请注意两个匹配项(分别为 0.6 和 0.8)的分数是如何平均的
>>> stats.percentileofscore([1, 2, 3, 3, 4], 3) 70.0
只有 2/5 的值严格小于 3
>>> stats.percentileofscore([1, 2, 3, 3, 4], 3, kind='strict') 40.0
但是 4/5 的值小于或等于 3
>>> stats.percentileofscore([1, 2, 3, 3, 4], 3, kind='weak') 80.0
weak 和 strict 分数的平均值是
>>> stats.percentileofscore([1, 2, 3, 3, 4], 3, kind='mean') 60.0
支持分数数组(任何维度)
>>> stats.percentileofscore([1, 2, 3, 3, 4], [2, 3]) array([40., 70.])
输入可以是无穷大
>>> stats.percentileofscore([-np.inf, 0, 1, np.inf], [1, 2, np.inf]) array([75., 75., 100.])
如果 a 为空,则生成的百分位数均为 nan
>>> stats.percentileofscore([], [1, 2]) array([nan, nan])