numpy中stack、hstack,vstack,dstack函数功能解释

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)

即下面的形式

numpy中stack、hstack,vstack,dstack函数功能解释_第1张图片

下面分别以不同的形式输出:

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的矩阵
                 numpy中stack、hstack,vstack,dstack函数功能解释_第2张图片

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矩阵

             numpy中stack、hstack,vstack,dstack函数功能解释_第3张图片

4、axis=1

s = np.stack((a, b, c), axis=1)
print('axis = 1 \n ', s.shape, '\n', s)

即将每个矩阵的每一行进行堆叠,放在一个矩阵里(一行对应一个矩阵)就是下图的红色的放一起,绿色的放一起

numpy中stack、hstack,vstack,dstack函数功能解释_第4张图片

5、axis=2

s = np.stack((a, b, c), axis=2)
print('axis = 2 \n ', s.shape, '\n', s)

即将每行的进行竖排,放在一个矩阵里(一行对应一个矩阵)

numpy中stack、hstack,vstack,dstack函数功能解释_第5张图片

---------------------
作者: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
版权声明:本文为博主原创文章,转载请附上博文链接!

 

转载于:https://www.cnblogs.com/Edison25/p/9951750.html

你可能感兴趣的:(numpy中stack、hstack,vstack,dstack函数功能解释)