【发布时间】:2018-08-03 23:12:20
【问题描述】:
我有一个尺寸为 333*333*52 的 3 维 numpy 数组
我有一个 333 个元素的索引列表,范围从 0 到 332,例如 [4 12 332 0 ...],我希望用它来重新排列 3d 数组的前两个维度
在 matlab 中我会这样做:
rearranged_array = original_array(new_order, new_order, :)
但这种方法不适用于 numpy:
rearranged_array = original_array[new_order, new_order, :]
产生一个 333*52 的数组
同时:
rearranged_array = original_array[new_order][new_order, :]
没有按正确的顺序处理事情
编辑:
这似乎有效:
rearranged_array = original_array[new_order, :][:, new_order]
这对我来说似乎比 matlab 方法更不直观 - 有没有更好的方法?
【问题讨论】: