我有一个"neighbors"的二维数组,我想根据另一个矩阵(称为"radii")中对应的行来重新排列每一行。下面的代码可以工作,但它使用了一个numpy数组上的for
循环,我知道这不是正确的方法。有什么正确的NumPy / 广播解决方案来重新排序吗?
neighbors = np.array([[8,7,6], [3,2,1]])
radii = np.array([[0.4, 0.2, 0.1], [0.3, 0.9, 0.1]])
order = radii.argsort(axis=1)
for i in range(2):
neighbors[i] = neighbors[i,order[i]]
print(neighbors)
# Result:
[[6 7 8]
[1 3 2]]