提到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()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!