gpt4 book ai didi

python - Numpy 3D 数组排列和 reshape

转载 作者:行者123 更新时间:2023-11-30 22:53:49 24 4
gpt4 key购买 nike

我有一个 3D numpy 数组,需要对其进行整形和排列。例如我有x=np.array([np.array([np.array([1,0,1]),np.array([1,1,1]),np.array([0,1,0]),np.array([1,1,0])]),np.array([np.array([0,0,1]),np.array([0,0,0]),np.array([0,1,1]),np.array([1,0,0])]),np.array([np.array([1,0,0]),np.array([1,0,1]),np.array([1,1,1]),np.array([0,0,0])])])

这是一个(3,4,3)的形状,打印时我得到:

array([[[1, 0, 1],
[1, 1, 1],
[0, 1, 0],
[1, 1, 0]],

[[0, 0, 1],
[0, 0, 0],
[0, 1, 1],
[1, 0, 0]],

[[1, 0, 0],
[1, 0, 1],
[1, 1, 1],
[0, 0, 0]]])

现在我需要将这个数组 reshape 为 (4,3,3)通过在每个子数组中选择相同的索引并将它们放在一起最终得到如下所示的结果:

array([[[1,0,1],[0,0,1],[1,0,0]],
[[1,1,1],[0,0,0],[1,0,1]],
[[0,1,0],[0,1,1],[1,1,1]],
[[1,1,0],[1,0,0],[0,0,0]]]

我试过reshape ,各种堆叠但没有任何效果(按照我需要的方式排列数组)。我知道我可以手动完成,但对于大型数组,手动不是一个选择。

任何帮助将不胜感激。谢谢

最佳答案

swapaxes会做你想做的事。也就是说,如果您的输入数组是 x 并且所需的输出是 y,那么

np.all(y==np.swapaxes(x, 1, 0))

应该给出True

关于python - Numpy 3D 数组排列和 reshape ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38066536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com