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])