这篇文章主要介绍“np.hstack()和np.dstack()如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“np.hstack()和np.dstack()如何使用”文章能帮助大家解决问题。
我们先来看 一下np.hstack()函数,代码如下:
# -*- coding: utf-8 -*- import numpy as np class Debug: def __init__(self): self.x = np.array([1, 2, 3]) self.y = np.array([4, 5, 6]) self.x1 = np.array([[1],[2],[3]]) self.y1 = np.array([[4],[5],[6]]) def mainProgram(self): z = np.hstack((self.x, self.y)) z1 = np.hstack((self.x1, self.y1)) print("The value of z is: ") print(z) print("The value of z1 is: ") print(z1) if __name__ == "__main__": main = Debug() main.mainProgram() """ The value of z is: [1 2 3 4 5 6] The value of z1 is: [[1 4] [2 5] [3 6]] """
我们可以看到np.hstack()会将numpy数组沿着横向堆叠,我们也可以说是沿着x轴方向堆叠。其实np.hstack()函数中的h就是horizontal的意思,意思为横向,而stack就是堆叠的意思。
我们再来看一下np.vstack(),代码如下:
# -*- coding: utf-8 -*- import numpy as np class Debug: def __init__(self): self.x = np.array([1, 2, 3]) self.y = np.array([4, 5, 6]) self.x1 = np.array([[1],[2],[3]]) self.y1 = np.array([[4],[5],[6]]) def mainProgram(self): z = np.vstack((self.x, self.y)) z1 = np.vstack((self.x1, self.y1)) print("The value of z is: ") print(z) print("The value of z1 is: ") print(z1) if __name__ == "__main__": main = Debug() main.mainProgram() """ The value of z is: [[1 2 3] [4 5 6]] The value of z1 is: [[1] [2] [3] [4] [5] [6]] """
我们可以看到np.vstack()会将numpy数组沿着纵向堆叠,我们也可以说是沿着y轴方向堆叠。其实np.vstack()函数中的v就是vertical的意思,意思为垂直方向,即纵向,同理stack是堆叠的意思, 所以整体表示沿着纵向堆叠。
综上所述,np.hstack()表示沿着横向堆叠,np.vstack()表示沿着纵向堆叠,需要注意它们的参数应该为一个元组,将需要堆叠的数组先组成一个元组再传递进入即可。当然,这里只是对两个numpy数组进行堆叠操作,多个数组也是可以,将他们放在一起组成一个共同的元组即可,代码如下:
# -*- coding: utf-8 -*- import numpy as np class Debug: def __init__(self): self.x = np.array([1, 2, 3]) self.y = np.array([4, 5, 6]) self.z = np.array([7, 8, 9]) def mainProgram(self): z = np.vstack((self.x, self.y, self.z)) print("The value of z is: ") print(z) if __name__ == "__main__": main = Debug() main.mainProgram() """ The value of z is: The value of z is: [[1 2 3] [4 5 6] [7 8 9]] """
关于“np.hstack()和np.dstack()如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。