我有 2 个 numpy 数组:
A = np.array([6, 7 ,8 ,9, 0])
B = np.array([5, 3, 2, 4, 1])
并且想使用第二个数组重新排列第一个数组。因此 A 的第一个元素应该放在输出数组中的位置 5。第二个元素应该转到第三个元素,依此类推。因此输出数组变为:
C = np.array([0, 8, 7, 9, 6])
使用简单的 python 循环很简单,但我只想使用 numpy。速度非常重要。
最佳答案
Numpy 允许您使用 B
来索引 A
。您必须从 B 中减去 1,因为 numpy 数组中的索引从 0 开始:
In [17]: A = np.array([6, 7, 8, 9, 0])
In [18]: B = np.array([5, 3, 2, 4, 1])
In [19]: C = A[B-1]
In [20]: C
Out[20]: array([0, 8, 7, 9, 6])
关于python - 根据第二个数组中的索引重新排列 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31920523/