【发布时间】:2016-04-30 04:18:16
【问题描述】:
我有一个“邻居”的二维数组,我想根据另一个矩阵中的相应行(称为“半径”)对每一行重新排序。下面的代码有效,但它在一个 numpy 数组上使用了 for 循环,我知道这是不正确的方法。这种重新排序的正确 numpy / broadcast 解决方案是什么?
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]]
【问题讨论】:
标签: python arrays sorting numpy indexing