如果有一个list
[2, 8, 4, 6]
我想得到它们的大小次序,比如8是最大的,对应着1,6是第二大的,对应2,所以想得到
[4, 1, 3, 2]
在python里该怎么实现这个操作?
1个回答
用scipy比较方便
from scipy import stats
nums = [2, 8, 4, 6]
ranks = len(nums) - stats.rankdata(nums) + 1
最后的结果ranks
array([ 4., 1., 3., 2.])
如果有一个list
[2, 8, 4, 6]
我想得到它们的大小次序,比如8是最大的,对应着1,6是第二大的,对应2,所以想得到
[4, 1, 3, 2]
在python里该怎么实现这个操作?
用scipy比较方便
from scipy import stats
nums = [2, 8, 4, 6]
ranks = len(nums) - stats.rankdata(nums) + 1
最后的结果ranks
array([ 4., 1., 3., 2.])