[英]Sort 3D array using sort indices of a 2D array
我有 2D 和 3D numpy 阵列。 二维阵列A
具有形状(N, 3)
,3d 阵列B
具有形状(N, 3, 3)
。 我想A
沿axis=1
排序,然后将相同的排序应用于数组B
沿axis=2
排序。
我知道我能做到
sort_idxs = np.argsort(A, axis=1)
但后来我不知道如何以我需要排列B
的方式应用sort_idxs
。 sort_idxs
的形状为(N, 3)
如A
。 不知何故,我需要将 sort_idxs 的第一维sort_idxs
到B
的第一维, map 将sort_idxs
的第二维到B
的第三维,并忽略B
的第二维。 我怎样才能做到这一点?
这可以使用解决
sort_idxs = np.argsort(A, axis=1)
B_sorted = np.take_along_axis(B, sort_idxs[:, np.newaxis, :], axis=2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.