Numpy 3d数组到最外层索引的2d数组

时间:2017-03-27 11:43:52

标签: python arrays numpy

我有一个像

这样的2d数组
+------+    +------+
|      |    |      |
|  A   |    |  B   |
|      |    |      |
+------+    +------+

我希望“删除”最外面的括号,如获取

+------+------+
|      |      |
|  A   |  B   |
|      |      |
+------+------+

例如我有

[[[1,1,1],[2,2,2]],[[3,3,3],[4,4,4]]]

我希望得到

[[1,1,1,3,3,3],[2,2,2,4,4,4]]

换句话说,我需要通过在链中附加7来将形状数组(7,3,1000)变成(3,7000)

如何去做?

1 个答案:

答案 0 :(得分:2)

一种方法是在第一个和第二个轴之间交换轴,然后重新整形以合并最后两个轴 -

arr.swapaxes(0,1).reshape(arr.shape[1],-1)

示例运行 -

In [9]: arr = np.array([[[1,1,1],[2,2,2]],[[3,3,3],[4,4,4]]])

In [10]: arr.swapaxes(0,1).reshape(arr.shape[1],-1)
Out[10]: 
array([[1, 1, 1, 3, 3, 3],
       [2, 2, 2, 4, 4, 4]])