【发布时间】:2018-05-15 22:01:40
【问题描述】:
我有一个列表 scores 和一个列表 distribution。我需要将scores 中的每个分数映射到distribution 中对应的百分位数。
例子:
distribution=[4,10,3,5,1]
scores = [1,6,11]
运算结果应该是[20,80,100]
Map each list value to its corresponding percentile 有人问过这个类似的问题,但在我的情况下,使用 scipy.stats.rankdata 是不可能的,因为我需要找到每个项目相对于不同分布的百分位数。
解决它的自然方法是[scipy.stats.percentileofscore(distribution,s) for s in scores],但是当scores 或distribution 很大(每个长度大于约10,000)时,这非常慢。
有什么方法可以大大加快速度吗?我试过先对通讯组列表进行排序,然后进行标准搜索,但最坏的情况仍然很糟糕。
【问题讨论】:
标签: python statistics distribution