np.hstack()和np.dstack()的使用
提到numpy数组就不得不说到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.vstack()函数的探索就结束了。更多相关np.hstack()和np.dstack()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341