Python 如何对(1,7,7,1024)的形状使用np.transpose()

Python 如何对(1,7,7,1024)的形状使用np.transpose(),python,numpy,Python,Numpy,a=np.one((1,7,7,1024)) 我想将形状更改为(1,1024,7,7) 我在Numpy网站上看到了教程,我认为需要分别设置位置。 所以我使用了下面的代码 shape=np.转置(a,(0,2,3,1)) 打印形状时: 形状将为: (1,7,1024,7) 我想不出原因是什么 谢谢你的帮助。正确答案是: shape_ = np.transpose(a, (0, 3, 2, 1)) 打印输出时,它提供以下信息: (1, 1024, 7, 7) 0是第一个轴,1是第二个轴,2是第三

a=np.one((1,7,7,1024))

我想将形状更改为(1,1024,7,7)

我在Numpy网站上看到了教程,我认为需要分别设置位置。 所以我使用了下面的代码

shape=np.转置(a,(0,2,3,1))

打印形状时:

形状将为:
(1,7,1024,7)

我想不出原因是什么

谢谢你的帮助。

正确答案是:

shape_ = np.transpose(a, (0, 3, 2, 1))
打印输出时,它提供以下信息:

(1, 1024, 7, 7)

0是第一个轴,1是第二个轴,2是第三个轴,依此类推,这取决于轴的数量,所以您可以随意排列它们。

使用
0,3,1,2
,轴0保持不变,轴3是下一个轴,轴1和轴2刚刚移动过来(如果您愿意,可以切换)。谢谢,但我仍然不明白为什么我不能使用(0,2,3,1),如果(1,7,7,1024)=(0,1,2,3),那么1024=3。那么如果你想的话,你会把3放在哪里(1,1024,7,7)?这就是所有的组合:(3,1,2,0)给出(1024,7,7,1),(0,3,2,1)给出(1,1024,7,7),(0,1,3,2)给出(1,7,1024,7),(0,1,2,3)给出(1,7,7,1024)。你可能想解释一下为什么你认为你所做的应该得到期望的结果?我明白了!谢谢!