我有一个二维的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 :(得分:2)
您可以广播从0
到数组形状的一系列数字,并以与现在相同的方式索引列:
x[np.arange(x.shape[0])[:, None], index]
array([[ 8, 6, 7],
[10, 11, 9]])