我有以下形状(3,2,3)的3d numpy数组。
[
[[ 0 1 2]
[ 3 4 5]]
[[ 6 7 8]
[ 9 10 11]]
[[12 13 14]
[15 16 17]]
]
但是,我需要按照以下顺序重塑为(3,3,2):
[
[[ 0 3]
[ 6 9]
[12 15]]
[[ 1 4]
[ 7 10]
[13 16]]
[[ 2 5]
[ 8 11]
[14 17]]
]
我目前正在使用Jupyter进行大量的反复试验。
感谢您的任何建议!
最佳答案
要定义原始数组,可以使用:
np.arange(18).reshape(3,2,3)
正如@Divakar在评论中提到的那样,您可以使用:
np.arange(18).reshape(3,2,3).transpose(2,0,1)
获得理想的结果。
来自
np.transpose
documentation:轴:默认情况下,反转尺寸,否则对轴进行排列
根据给定的值。
2,0,1
是从(3,2,3)
形状变为(3,3,2)
所需的排列。还将(3400, 7, 100)
形状转换为(100, 3400, 7)
。另一种方法是使用
np.rollaxis
(来自@Divakar的另一个提示):np.rollaxis(np.arange(18).reshape(3,2,3),2)
关于python - 将Numpy阵列从(3、2、3)重塑为(3、3、2),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45062921/