按降序排列numpy列表的元素

时间:2021-02-19 09:35:15

标签: python numpy sorting

如果列表按降序排序,我需要返回列表元素将具有的索引。

例如给定 np.array([2,3,1,4,5]) 我想收到 array([3,2,4,1,0])

有没有一种简单的方法可以获得这样的数组?

2 个答案:

答案 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)