我知道这个问题已经被问了上百次了,但答案似乎总是“用纽比的阿格索特”。但是,要么我误解了大多数人的提问,要么答案与问题不符。不管是什么情况,我希望得到列表升序的索引。这个短语令人困惑,所以举个例子,给定一个列表[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]
很明显,argsort正在做其他的事情,那么它实际上在做什么,它与预期的行为有什么相似之处,所以经常(错误地)提出它?更重要的是,我怎样才能得到期望的输出?在
argsoft()基本上是将您的列表转换为一个排序的指示符列表。在
首先,它获取列表中每个元素的索引,以便新列表变成:
^{pr2}$然后它根据原始列表中的项对索引列表进行排序。As
4:0 , 2:1 , 1:2 and 3:3
其中:表示“对应于”。在整理我们得到的原始列表
以及放置旧列表中每个对应索引的值
所以基本上,它根据原始列表对列表的指标进行排序。据我所知,这是我所理解的。对不起,如果我错了。在
希望有帮助
相关问题 更多 >
编程相关推荐