获取列表升序索引

2024-04-27 05:15:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这个问题已经被问了上百次了,但答案似乎总是“用纽比的阿格索特”。但是,要么我误解了大多数人的提问,要么答案与问题不符。不管是什么情况,我希望得到列表升序的索引。这个短语令人困惑,所以举个例子,给定一个列表[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正在做其他的事情,那么它实际上在做什么,它与预期的行为有什么相似之处,所以经常(错误地)提出它?更重要的是,我怎样才能得到期望的输出?在


Tags: 答案fromimportnumpy列表错误情况事情
1条回答
网友
1楼 · 发布于 2024-04-27 05:15:54

argsoft()基本上是将您的列表转换为一个排序的指示符列表。在

l = [4, 2, 1, 3]

首先,它获取列表中每个元素的索引,以便新列表变成:

^{pr2}$

然后它根据原始列表中的项对索引列表进行排序。As 4:0 , 2:1 , 1:2 and 3:3其中:表示“对应于”。在

整理我们得到的原始列表

l=[1, 2, 3, 4]

以及放置旧列表中每个对应索引的值

new=[2,1,3,0]

所以基本上,它根据原始列表对列表的指标进行排序。据我所知,这是我所理解的。对不起,如果我错了。在

希望有帮助

相关问题 更多 >