Python 使用每行的索引重新排列2d numpy数组的每一行
我有一个2d numpy数组xPython 使用每行的索引重新排列2d numpy数组的每一行,python,arrays,numpy,Python,Arrays,Numpy,我有一个2d numpy数组x x = np.array([[6,7,8], [9,10,11]]) 我想用索引重新排列数组x的每一行 index = np.array([[2,0,1], [1,2,0]]) 以致 result[i,:] =
x = np.array([[6,7,8],
[9,10,11]])
我想用索引重新排列数组x的每一行
index = np.array([[2,0,1],
[1,2,0]])
以致
result[i,:] = x[i,index[i,:]]
result = np.array([[8,6,7],
[10,11,9]])
我有一个大的数组x,所以我不想用循环来实现这一点。您可以广播从
0
到数组形状的一系列数字,并以与现在相同的方式对列进行索引:
x[np.arange(x.shape[0])[:, None], index]
array([[ 8, 6, 7],
[10, 11, 9]])