Python / Numpy:将N4xN3xN2xN1 4D阵列重新排列成(N4.N2)x(N3.N1)2D阵列

时间:2015-11-27 12:41:11

标签: python arrays numpy reshape

例如,如果:

a = numpy.array([[[[1,2],[3,4]],[[5,6],[7,8]]],[[[11,12],[13,14]],[[15,16],[17,18]]]])

然后我想最终获得:

1  2  5  6
3  4  7  8
11 12 15 16
13 14 17 18

不幸的是,简单的重塑不会起作用。

1 个答案:

答案 0 :(得分:4)

您需要先交换第二个和第三个轴,然后重新整形:

>>> a.swapaxes(1, 2).reshape(4, 4)
array([[ 1,  2,  5,  6],
       [ 3,  4,  7,  8],
       [11, 12, 15, 16],
       [13, 14, 17, 18]])