您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

撤消或反向argsort(),python

撤消或反向argsort(),python

我不确定如何在中做到最好numpy,但是在纯Python中,推理将是:

aargsort正在range(len(a))告诉您这些项目aSort来自何处的排列-就像在纯Python中一样:

>>> x = list('Ciaobelu')
>>> r = range(len(x))
>>> r.sort(key=x.__getitem__)
>>> r
[2, 4, 0, 5, 1, 6, 3, 7]
>>>

sorted(x)will的第一个参数是x[2],第二个x[4]以此类推。

因此,给定排序后的版本,您可以通过“将项目放回它们的来源”来重建原始版本:

>>> s = sorted(x)
>>> s
['a', 'b', 'c', 'e', 'i', 'l', 'o', 'u']
>>> original = [None] * len(s)
>>> for i, c in zip(r, s): original[i] = c
... 
>>> original
['c', 'i', 'a', 'o', 'b', 'e', 'l', 'u']
>>>

当然,会有更严格,更快速的方式来表达它numpy(不幸的是,我对Python本身的了解不多,我不了解Python本身;-),但是我希望通过展示“您需要执行的操作。

python 2022/1/1 18:34:15 有416人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶