Python 使用每行的索引重新排列2d numpy数组的每一行

Python 使用每行的索引重新排列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,:] =

我有一个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[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]])