使用转置/交换来交换第二个和第三个轴,然后重塑形状以合并最后两个轴-
B.transpose(0,2,1,3).reshape(-1,B.shape[1]*B.shape[3])B.swapaxes(1,2).reshape(-1,B.shape[1]*B.shape[3])
样品运行-
In [41]: AOut[41]: array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]])In [42]: B = view_as_blocks(A, block_shape=(2, 2))In [43]: BOut[43]: array([[[[ 0, 1], [ 4, 5]], [[ 2, 3], [ 6, 7]]], [[[ 8, 9], [12, 13]], [[10, 11], [14, 15]]]])In [44]: B.transpose(0,2,1,3).reshape(-1,B.shape[1]*B.shape[3])Out[44]: array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]])



