如何展平3维数组

时间:2019-07-24 10:38:15

标签: python numpy

我使用Pyaudio通过将每个二维列表附加在一起来记录多声道信号(例如2个)。现在,我想找到一种将信号展平为单个二维数组的有效方法:

例如,输入为:

i = [[[ 1,  2],
       [ 1,  2],
       [ 1,  2]], 
     [[ 3,  4],
       [ 3,  4],
       [ 3,  4]]
    ]
i = np.array(i)

i的形状为(2,3,2),我想将其展平为(2x3,2)

array([[1, 2],
       [1, 2],
       [1, 2],
       [3, 4],
       [3, 4],
       [3, 4]])

有什么建议吗?非常感谢

3 个答案:

答案 0 :(得分:1)

使用np.concatenate

print(np.concatenate(i, 0))

输出:

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

答案 1 :(得分:1)

它应该可以工作:

i.reshape(2*3, 2)

答案 2 :(得分:0)

使用此-

[item for sublist in i for item in sublist]
[[1, 2], [1, 2], [1, 2], [3, 4], [3, 4], [3, 4]]