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

时间:2023-03-09 06:51:32
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.****.net/u013019431/article/details/79768219

http://blog.****.net/****15698845876/article/details/73380803