python - 如何获取反向排序列表的索引?
问题描述
说我有数组:
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='mergesort')
array([4, 0, 1, 2, 3])
或者从numpy-1.15开始,您可以使用:
>>> np.argsort(-np.array([3, 3, 2, 2, 4]), kind='stable')
array([4, 0, 1, 2, 3])
推荐阅读
- amazon-web-services - 如何创建自定义事件触发器以在创建新存储桶时调用 lambda?
- python - functionB的多线程线程直到function A的线程完成才开始,但是functionA的线程不等待functionB
- oracle - 不输入参数时忽略where子句中的日期范围参数
- python - ipywidgets 与 Jupyter Lab 1.0+ 版兼容?
- php - PHP密码验证,
- excel - 数据透视表中的条件格式
- ruby-on-rails - Rails 验证特定页面上的某些属性
- azure - 在 Azure 中托管 EventProcessorHost
- javascript - ComponenetMount 将字段添加到数组 React
- android - 如何更改 robinhood/spark 库示例中的 Y 轴长度?