scipy.stats.
percentileofscore#
- scipy.stats.percentileofscore(a, score, kind='rank', nan_policy='propagate')[source]#
计算相对于分数列表的分数百分位排名。
例如,
percentileofscore
为 80% 表示 a 中 80% 的分数低于给定的分数。在出现间隙或并列的情况下,确切的定义取决于可选关键字 kind。- 参数:
- aarray_like
用于与 score 比较的一维数组。
- scorearray_like
计算百分位数的得分。
- kind{‘rank’, ‘weak’, ‘strict’, ‘mean’}, optional
指定结果分数的解释。以下选项可用(默认为“rank”)
‘rank’:分数的平均百分比排名。如果存在多个匹配项,则对所有匹配项的分数百分比排名进行平均。
‘weak’:这种类型对应于累积分布函数的定义。 80% 的 percentileofscore 表示 80% 的值小于或等于提供的分数。
‘strict’:类似于“weak”,不同之处在于只计算严格小于给定分数的值。
‘mean’: “weak” 和 “strict” 分数的平均值,通常用于测试。请参阅 https://en.wikipedia.org/wiki/Percentile_rank
- nan_policy{‘propagate’, ‘raise’, ‘omit’}, optional
指定如何处理 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
弱分数和严格分数的平均值是
>>> 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])