如果列表按降序排序,我需要返回列表元素将具有的索引。
例如给定 np.array([2,3,1,4,5])
我想收到 array([3,2,4,1,0])
。
有没有一种简单的方法可以获得这样的数组?
答案 0 :(得分:2)
您想要的是元素按降序排列的排名。
a = np.array([2,3,1,4,5])
sorted_indices = np.argsort(-a)
ranks = np.empty_like(sorted_indices)
ranks[sorted_indices] = np.arange(len(a))
结果:
>>> ranks
array([3, 2, 4, 1, 0])
答案 1 :(得分:-1)
您可以使用 numpy 的 argsort(看起来您想要相反的顺序?)
a = np.array([2,3,1,4,5])
np.argsort(-a)