Numpy获取反向索引顺序
我有一个numpy数组,我用已知的顺序排列它,我怎样才能得到相反的顺序,这样我就可以从输出中恢复输入Numpy获取反向索引顺序,numpy,indexing,permutation,Numpy,Indexing,Permutation,我有一个numpy数组,我用已知的顺序排列它,我怎样才能得到相反的顺序,这样我就可以从输出中恢复输入 In [1]: import numpy as np In [2]: a = np.arange(9) In [3]: order = np.random.permutati
In [1]: import numpy as np
In [2]: a = np.arange(9)
In [3]: order = np.random.permutation(9)
In [4]: b = a[order]
In [5]: order
Out[5]: array([0, 4, 5, 2, 1, 7, 6, 8, 3])
In [6]: b
Out[6]: array([0, 4, 5, 2, 1, 7, 6, 8, 3])
In [7]: a
Out[7]: array([0, 1, 2, 3, 4, 5, 6, 7, 8])
In [8]: inv_order = [0, 4, 3, 8, 1, 2, 6, 5, 7]
In [9]: b[inv_order]
Out[9]: array([0, 1, 2, 3, 4, 5, 6, 7, 8])
这里我手动创建了inv\u order
,这样b[inv\u order]
与输入a
相同。
在给定输入、输出和置换顺序的情况下,如何计算该逆/逆顺序?
请注意,输入数组不能保证被排序
谢谢 也许应该这样做。不,只有在对输入数组进行排序的情况下,这才有效,但不能保证输入已排序。
inv\u order=np.argsort(order)
,谢谢!它起作用了!你能修改主要答案吗,这样我就可以接受了?很好,谢谢,把答案编辑成正确的。