我有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。速度非常重要。
答案 0 :(得分:3)
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])