我在这方面遇到了真正的麻烦。我有一个三维 numpy 数组,我想通过二维索引数组对其进行重新排序。实际上,数组将以编程方式确定,并且三维数组可能是二维或四维的,但为了简单起见,如果两个数组都是二维的,则以下是所需的结果:
ph = np.array([[1,2,3], [3,2,1]])
ph_idx = np.array([[0,1,2], [2,1,0]])
for sub_dim_n, sub_dim_ph_idx in enumerate(ph_idx):
ph[sub_dim_n] = ph[sub_dim_n][sub_dim_ph_idx]
这使得 ph 数组变为:
array([[1, 2, 3],
[1, 2, 3]])
这就是我想要的。如果情况相同,任何人都可以帮忙,但是我有一个三维数组(psh)而不是 ph,例如:
psh = np.array(
[[[1,2,3]],
[[3,2,1]]]
)
希望这很清楚,如果不是,请询问。提前致谢!