转置3-d numpy阵列

时间:2017-09-03 14:51:25

标签: python numpy

假设我有一个COLORS数组numpy,其形状为A 我想在(5,24,1)上采用五个单独的转置,这样转置后的结果形状为axis = 0
如何使用某些(5,1,24)函数执行此操作?

2 个答案:

答案 0 :(得分:3)

可以提出三种方法 -

A.swapaxes(1,2)
A.transpose(0,2,1)
np.rollaxis(A,2,1)

对于swapaxestranspose,请按照他们的文档进行操作。

使用np.rollaxis,我们滚动轴使第三轴进入第二个位置,从而将第二个轴推回到第三个轴位置。链接文档中的更多信息。

使用最后一个轴是单身的事实 -

A[:,None,:,0]

答案 1 :(得分:2)

您可以使用np.moveaxis(Divakars优秀答案中缺少一个选项),您可以在其中定义应移动哪个轴:

np.moveaxis(A, (0, 1, 2), (0, 2, 1))

此轴将0移至0(无更改,也可省略),1移至22移至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)
相关问题