我有两个大小相同的矩阵A,B。我想使用B的列以每列为基础来递增A的列。例如,
A = np.array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
和
B = np.array([[0, 0, 2],
[1, 2, 1],
[2, 1, 0]])
我想要类似的东西:
A[B] = [[1, 4, 9],
[2, 6, 8],
[3, 5, 7]]
即,我已将B的第j列用作A的第j列的索引。这样做有什么有效的方法吗?谢谢!
您可以使用高级索引:
A[B, np.arange(A.shape[0])]
array([[1, 4, 9],
[2, 6, 8],
[3, 5, 7]])
np.take_along_axis(A, B, axis=0)
array([[1, 4, 9],
[2, 6, 8],
[3, 5, 7]])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句