np.stack
在某一维度上进行堆叠
axis=0 则和原来的array相同
axis=1
arrays = [[1,2,3,4], [5,6,7,8]]
arrays=np.array(arrays)
np.stack(arrays, axis=1)
结果如下
array([[1, 5],
[2, 6],
[3, 7],
[4, 8]])
把哪个维度上的数据打包当成一个整体,然后堆叠起来
np.concatenate
np.concatenate((a1,a2,a3,…), axis=0),这个函数就是按照特定方向轴进行拼接,默认是第一维
>>> a = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
>>> b = np.array([[[1,2,3],[4,5,6]]])
>>> np.concatenate((a, b), axis=0)
array([[[1, 2, 3],
[4, 5, 6]],
[[1, 2, 3],
[4, 5, 6]],
[[1, 2, 3],
[4, 5, 6]]])
这里a的shape为(2,2,3),b的shape为(1,2,3),axis=0则要求a,b在其他两维的形状是一致的,如果直接在其他维度进行concatenate操作则会报错(因为axis=1时,a和b在第一维的长度不一致):
np.hstack
按照列的方向堆叠, 可以是元组,列表,或者numpy数组, 其实也就是axis=1,即
np.vstack
np.vstack(tup), 按照行的方向堆叠, tup可以是元组,列表,或者numpy数组, 理解起来与上相同
np.dstack
np.dstack(tup), 按照第三维方向堆叠
np.column_stack和np.row_stack
np.column_stack函数将一维的数组堆叠为二维数组,方向为列,相当于np.hstack
np.row_stack函数将一维的数组堆叠为二维数组,方向为行,相当于np,vstack
原文https://blog.csdn.net/qq_26414307/article/details/79317965