You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用scipy.stats.rankdata对列表降序排序获取对应排名

scipy.stats.rankdata 实现数值降序排名的方法

你可以通过以下两种简单方法实现需求,两种方法均完全兼容rankdata的并列排名处理规则(method参数的所有可选值都可正常使用):

方法1:对原始数组取负值后计算排名

rankdata默认升序排序,数值越小排名越高。将原始数值取负后,原本数值越大的数取负后结果越小,刚好可以直接得到降序对应的排名:

from scipy.stats import rankdata

arr = [968, 233, 493, 5, 851, 224, 871, 396, 689, 862]
desc_rank = rankdata(-arr)
print(desc_rank)
# 输出:[ 1.  8.  6. 10.  4.  9.  2.  7.  5.  3.]

方法2:用总长度+1减去升序排名

如果你已经提前计算好了升序排名,可以直接用数组总长度加1减去升序排名值,得到降序排名:

from scipy.stats import rankdata

arr = [968, 233, 493, 5, 851, 224, 871, 396, 689, 862]
asc_rank = rankdata(arr)
desc_rank = len(arr) + 1 - asc_rank
print(desc_rank)
# 输出和方法1完全一致

内容的提问来源于stack exchange,提问作者Konstantin Kostanzhoglo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:48:01