我有一个像这样的三维矩阵
arange(16).reshape((4,2,2))
array([[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]],
[[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15]]])
并希望以网格格式堆叠它们,最后以
结尾array([[ 0, 1, 4, 5],
[ 2, 3, 6, 7],
[ 8, 9, 12, 13],
[10, 11, 14, 15]])
有没有一种方法可以在没有明确地hstacking(和/或vstacking)它们或添加额外的维度和重塑(不确定这会起作用)的情况下做什么?
谢谢,
答案 0 :(得分:37)
In [27]: x = np.arange(16).reshape((4,2,2))
In [28]: x.reshape(2,2,2,2).swapaxes(1,2).reshape(4,-1)
Out[28]:
array([[ 0, 1, 4, 5],
[ 2, 3, 6, 7],
[ 8, 9, 12, 13],
[10, 11, 14, 15]])
我已为reshaping/unshaping arrays into blocks, here发布了更多常规功能。