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