Numpy中stack(),hstack(),vstack()函数详解

一`、stack

        按指定维度堆叠数组。

      stack(a, b) 维度计算

        axis=0: 2*m*n

       axis=1:  m*2*n

       axis=-1: m*n*2

a = np.arange(1, 10).reshape((3, 3)) b = np.arange(11, 20).reshape((3, 3)) c = np.arange(101, 110).reshape((3, 3)) 
np.stack((a,b,c),axis=0) # axis=0可以认为只是将原数组上下堆叠,增加了0维的个数
array([[[ 1, 2, 3],
[ 4, 5, 6], [ 7, 8, 9]], [[ 11, 12, 13], [ 14, 15, 16], [ 17, 18, 19]], [[101, 102, 103], [104, 105, 106], [107, 108, 109]]])
np.stack((a,b,c),axis=1) #axis=1,可以看出第一个3*3的数组是由是a,b,c中每个数组的第一行堆叠而成
array([[[ 1, 2, 3],
[ 11, 12, 13], [101, 102, 103]], [[ 4, 5, 6], [ 14, 15, 16], [104, 105, 106]], [[ 7, 8, 9], [ 17, 18, 19], [107, 108, 109]]])
np.stack((a,b,c),axis=2) #axis=2,可以看到第一个3*3的数组是由a,b,c中的第一行向量转置组合而成
array([[[ 1, 11, 101],
[ 2, 12, 102], [ 3, 13, 103]], [[ 4, 14, 104], [ 5, 15, 105], [ 6, 16, 106]], [[ 7, 17, 107], [ 8, 18, 108], [ 9, 19, 109]]])

 

 

参考:https://blog.csdn.net/u013019431/article/details/79768219

        http://blog.csdn.net/csdn15698845876/article/details/73380803

posted @ 2018-01-02 22:11  牧马人夏峥  阅读(902)  评论(0编辑  收藏  举报