https://blog.csdn.net/Riverhope/article/details/78922006
https://blog.csdn.net/ygys1234/article/details/79872694
首先生成一些数,
import numpy as np a = np.arange(1, 7).reshape((2, 3)) b = np.arange(7, 13).reshape((2, 3)) c = np.arange(13, 19).reshape((2, 3)) print('a = \n', a) print('b = \n', b) print('c = \n', c)
即下面的形式
下面分别以不同的形式输出:
1、vstack
vstack实现了轴0合并。vstack的字母v表示vertical的意思,提示用户把它想象成垂直合并。观察一维和二维数组的情况,b在结果中被排在a的后面,形成a在上,b在下的垂直关系。
s = np.vstack((a, b, c)) print('vstack \n ', s.shape, '\n', s)
在竖直方向上进行堆叠,得到6×3的矩阵
2、hstack
hstack表示轴1合并。hstack的字母h来自于horizontal,表示两个数组是水平的,hstack((a,b))将把b排在a的右边的意思。
s = np.hstack((a, b, c)) print('hstack \n ', s.shape, '\n', s)
在水平方向上进行堆叠
3、axis=0
s = np.stack((a, b, c), axis=0) print('axis = 0 \n ', s.shape, '\n', s)
就是下面的形式
具体为3组2×3矩阵
4、axis=1
s = np.stack((a, b, c), axis=1) print('axis = 1 \n ', s.shape, '\n', s)
即将每个矩阵的每一行进行堆叠,放在一个矩阵里(一行对应一个矩阵)就是下图的红色的放一起,绿色的放一起
5、axis=2
s = np.stack((a, b, c), axis=2) print('axis = 2 \n ', s.shape, '\n', s)
即将每行的进行竖排,放在一个矩阵里(一行对应一个矩阵)
---------------------
作者:Riverhope
来源:CSDN
原文:https://blog.csdn.net/Riverhope/article/details/78922006
版权声明:本文为博主原创文章,转载请附上博文链接!
三、dstack
dstack自然是说deep stack了,它是轴2合并。dstack([a,b])把a和b摞在一起,像一摞扑克牌一样。
a = np.array([1,2]) b = np.array([3,4]) print(np.dstack((a,b))) # [[[1 3] # [2 4]]]
咦,例子的结果跟vstack有点像嘛。前面是长度和宽度的问题,现在是高度的问题了,所以结果变成了三维的。
---------------------
作者:ygys1234
来源:CSDN
原文:https://blog.csdn.net/ygys1234/article/details/79872694
版权声明:本文为博主原创文章,转载请附上博文链接!