假设我有一个COLORS
数组numpy
,其形状为A
我想在(5,24,1)
上采用五个单独的转置,这样转置后的结果形状为axis = 0
。
如何使用某些(5,1,24)
函数执行此操作?
答案 0 :(得分:3)
可以提出三种方法 -
A.swapaxes(1,2)
A.transpose(0,2,1)
np.rollaxis(A,2,1)
对于swapaxes
和transpose
,请按照他们的文档进行操作。
使用np.rollaxis
,我们滚动轴使第三轴进入第二个位置,从而将第二个轴推回到第三个轴位置。链接文档中的更多信息。
使用最后一个轴是单身的事实 -
A[:,None,:,0]
答案 1 :(得分:2)
您可以使用np.moveaxis
(Divakars优秀答案中缺少一个选项),您可以在其中定义应移动哪个轴:
np.moveaxis(A, (0, 1, 2), (0, 2, 1))
此轴将0
移至0
(无更改,也可省略),1
移至2
和2
移至1
。所以这基本上只是交换轴1和2。
>>> A = np.ones((5,24,1))
>>> res = np.moveaxis(A, (1, 2), (2, 1)) # this time without the zeros
>>> res.shape
(5, 1, 24)