提到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()
函数的探索就结束了。
如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~