Bra*_*roy 2 python sorting numpy list python-3.x
我知道这个问题已经问了一百次了,但答案似乎总是“使用 numpy 的 argsort”。但是,要么我误解了大多数人的要求,要么问题的答案不正确。无论如何,我希望获得列表升序的索引。措辞令人困惑,因此举个例子,给定一个列表,[4, 2, 1, 3]我希望得到一个列表[3, 1, 0, 2]。最小的项目是1,所以它得到索引0,最大的项目是,4所以它得到索引3。在我看来,argsort经常有人建议这样做,但似乎并没有这样做。
from numpy import argsort
l = [4, 2, 1, 3]
print(argsort(l))
# [2, 1, 3, 0]
# Expected [3, 1, 0, 2]
Run Code Online (Sandbox Code Playgroud)
很明显 argsort 正在做其他事情,那么它实际上在做什么,它与预期的行为有何相似之处,以至于它经常(错误地)被建议?而且,更重要的是,我怎样才能获得所需的输出?
小智 6
该argsoft()是你的名单基本上转化为指标的排序列表。
l = [4, 2, 1, 3]
Run Code Online (Sandbox Code Playgroud)
首先它获取列表中每个元素的索引,因此新列表变为:
indexed=[0, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
然后它根据原始列表中的项目对索引列表进行排序。作为4:0 , 2:1 , 1:2 and 3:3其中:装置“对应于”。
对我们得到的原始列表进行排序
l=[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
并放置旧列表的每个对应索引的值
new=[2,1,3,0]
Run Code Online (Sandbox Code Playgroud)
所以基本上它根据原始列表对列表的索引进行排序。据我所知,这是。对不起,如果我错了。
| 归档时间: |
|
| 查看次数: |
3062 次 |
| 最近记录: |