python - 如何获取反向排序列表的索引?

标签 python arrays list numpy sorting

假设我有数组:

A = [3, 3, 2, 2, 4]

排序列表的索引(升序)将是:

[2, 3, 0, 1, 4]

我想要反向排序列表(降序):

[4, 0, 1, 2, 3]

请注意,反向排序列表并不是排序列表的直接反向。

我会使用 numpy;但是,如果我这样做:

indices = np.argsort(A)[::-1]

# This gives: indices = [4, 1, 0, 3, 2]
# But I want: indices = [4, 0, 1, 2, 3]

那么,如何获得我想要的反向排序列表的索引呢?或者有什么方法可以用 numpy 来做到这一点吗?

谢谢!

最佳答案

您可以在此处np.argsort(..)负数数组,例如:

>>> np.argsort(-np.array([3, 3, 2, 2, 4]), kind=<b>'mergesort'</b>)
array([4, 0, 1, 2, 3])

或自 ,您可以使用:

>>> np.argsort(-np.array([3, 3, 2, 2, 4]), kind=<b>'stable'</b>)
array([4, 0, 1, 2, 3])

关于python - 如何获取反向排序列表的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57663223/

相关文章:

python3 : zip the values of a dictionary

python - 根据前一个元素递增下一个元素

python - Django 在模板中查找字典值并按日期排序

arrays - 对描述多边形的线段数组进行排序和分组

python - `not` 运算符与 python 列表的奇怪行为

c++ - 声明 int 数组

C数组在堆栈上分配一个额外的指针

list - 如何在字典列表中向字典添加键?

Python 总结器 Sumy

python - 按列对表进行排序并将其他列设置为顺序值以保持排序