百分位排名计算
我正在尝试使用 百分位排名 来计算一个分数的排名,使用的是 python statlib 模块。这个 percentileofscore 函数应该返回一个在0到100之间的值,但它经常会产生超出这个范围的数字。举个例子:
>> a = [0,1,2,3,4,5]
>> percentileofscore(a, 0)
108.33333333333333
我也试过 scipy 模块,自己写的代码结果也差不多。
我是不是对这个函数有什么误解呢?
编辑 - 更多例子:
percentileofscore([23,23,23,25], 23)
137.5
percentileofscore([12,19,65,25], 12)
112.5
percentileofscore([112,109,605,25], 25)
112.5
似乎查询最低分的百分位数会导致这个问题。可能是个bug?
1 个回答
8
scipy.stats.percentileofscore 这个函数看起来是按预期工作的:
In [2]: import scipy.stats as stats
In [3]: stats.percentileofscore([0,1,2,3,4,5], 0)
Out[3]: 16.666666666666664