前言
NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍Python NumPy 连接数组(array)
1、concatenate连接NumPy数组
连接意味着将两个或多个数组的内容放在单个数组中。
在SQL中,我们基于键联接表,而在NumPy中,我们按轴联接数组。
我们传递了一系列要与轴一起加入concatenate()函数的数组。 如果未显式传递轴,则将其视为0。
例如:
连接两个数组
import numpy as np
arr1 = np.array([4, 2, 3])
arr2 = np.array([4, 7, 6])
arr = np.concatenate((arr1, arr2))
print(arr)
上面代码运行的成果:[4 2 3 4 7 6]
例如:
沿行(axis=1)联接两个二维数组:
import numpy as np
arr1 = np.array([[1, 7], [3, 4]])
arr2 = np.array([[5, 9], [2, 8]])
arr = np.concatenate((arr1, arr2), axis=1)
print(arr)
上面代码运行的成果:
[[1 7 5 9]
[3 4 2 8]]
2、使用stack()函数连接数组
stack()与concatenate()相同,唯一的不同是stack()是沿着新轴完成的。
我们可以沿着第二个轴连接两个一维数组,这将导致它们一个放在另一个之上。
我们传递一个要连接到stack()方法的数组序列和axis。如果axis没有显式传递,则将其视为0。
例如:
import numpy as np
arr1 = np.array([1, 7, 3])
arr2 = np.array([4, 8, 6])
arr = np.stack((arr1, arr2), axis=1)
print(arr)
上面代码运行的成果:
[[1 4]
[7 8]
[3 6]]
3、使用hstack()通过行
NumPy提供了一个辅助函数:hstack()沿行堆叠。
例如:
import numpy as np
arr1 = np.array([1, 77, 31])
arr2 = np.array([4, 88, 61])
arr = np.hstack((arr1, arr2))
print(arr)
上面代码运行的成果:
[ 1 77 31 4 88 61]
4、使用vstack()通过列
NumPy提供了一个辅助函数:vstack()沿列堆叠。
例如:
import numpy as np
arr1 = np.array([11, 12, 3])
arr2 = np.array([41, 5, 16])
arr = np.vstack((arr1, arr2))
print(arr)
上面代码运行的成果:
[[11 12 3]
[41 5 16]]
5、使用dstack()通过Height (depth)
NumPy提供了一个辅助函数:dstack()沿高度进行堆叠,该高度与深度相同。
例如:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr = np.dstack((arr1, arr2))
print(arr)
上面代码运行的成果:
[[[1 4]
[2 5]
[3 6]]]