展平3-d numpy阵列

时间:2017-08-08 11:27:18

标签: python arrays numpy

如何压扁这个:

b = np.array([
    [[1,2,3], [4,5,6], [7,8,9]],
    [[1,1,1],[2,2,2],[3,3,3]]
])

成:

c = np.array([
    [1,2,3,4,5,6,7,8,9],
    [1,1,1,2,2,2,3,3,3]
])

其他这些工作:

c = np.apply_along_axis(np.ndarray.flatten, 0, b)
c = np.apply_along_axis(np.ndarray.flatten, 0, b)

只返回相同的数组。

将这种方法扁平化将会很棒。

3 个答案:

答案 0 :(得分:3)

这将完成这项工作:

c=b.reshape(len(b),-1)

然后c

array([[1, 2, 3, 4, 5, 6, 7, 8, 9],
       [1, 1, 1, 2, 2, 2, 3, 3, 3]])

答案 1 :(得分:0)

你可以完全展平然后重塑:

c = b.flatten().reshape(b.shape[0],b.shape[1]*b.shape[2])

输出

array([[1, 2, 3, 4, 5, 6, 7, 8, 9],
       [1, 1, 1, 2, 2, 2, 3, 3, 3]])

答案 2 :(得分:0)

所以你总是可以使用重塑:

b.reshape((2,9)) 
array([[1, 2, 3, 4, 5, 6, 7, 8, 9],
       [1, 1, 1, 2, 2, 2, 3, 3, 3]])