Numpy numpy.concatenate()的使用
concatenate()函数是NumPy包中的一个函数。该函数主要用于将NumPy数组组合在一起。该函数基本用于将两个或多个相同形状的数组沿着指定的轴连接起来。需要注意以下几点:
- NumPy的concatenate()函数不像传统的数据库连接,它更像是堆叠NumPy数组。
- 该函数可以在垂直和水平方向上操作。这意味着我们可以在水平或垂直方向上将数组连接在一起。
此函数的常规写法是np.concatenate (),但我们也可以将其写为numpy.concatenate ()。这取决于导入numpy包的方式,可以是import numpy as np或import numpy。
语法
numpy.concatenate((a1, a2, ...), axis)
参数
1) (a1, a2, …)
此参数定义了数组序列。在这里,a1、a2、a3…是具有相同形状的数组,除了与轴对应的维度之外。
2) axis: int(可选)
此参数定义了数组将被连接的轴。默认情况下,其值为0。
返回值
它将返回一个包含两个数组元素的ndarray。
示例1:numpy.concatenate()
import numpy as np
x=np.array([[1,2],[3,4]])
y=np.array([[12,30]])
z=np.concatenate((x,y))
z
在上述代码中:
- 我们使用别名np导入了numpy。
- 我们使用np.array()函数创建了一个数组’x’。
- 然后,我们使用相同的np.array()函数创建了另一个数组’y’。
- 我们声明了变量’z’并赋值为np.concatenate()函数的返回值。
- 我们将数组’x’和’y’作为参数传递给该函数。
- 最后,我们尝试打印变量’z’的值。
在输出中,根据axis=0,显示了数组’x’和’y’的值。
输出:
array([[ 1, 2],
[ 3, 4],
[12, 30]])
示例2:使用axis=0的numpy.concatenate()
import numpy as np
x=np.array([[1,2],[3,4]])
y=np.array([[12,30]])
z=np.concatenate((x,y), axis=0)
z
输出:
array([[ 1, 2],
[ 3, 4],
[12, 30]])
示例3:numpy.concatenate(),axis=1
import numpy as np
x=np.array([[1,2],[3,4]])
y=np.array([[12,30]])
z=np.concatenate((x,y.T), axis=1)
z
输出:
array([[ 1, 2, 12],
[ 3, 4, 30]])
在上面的示例中,’.T’ 用于将行变成列,列变成行。
示例4:使用axis=None的numpy.concatenate()
import numpy as np
x=np.array([[1,2],[3,4]])
y=np.array([[12,30]])
z=np.concatenate((x,y), axis=None)
z
输出:
array([ 1, 2, 3, 4, 12, 30])
在上面的示例中,我们使用了np.concatenate()函数。这个函数没有保留MaskedArray输入的掩码。以下是一种可以保留MaskedArray输入掩码的数组拼接方法。
示例5:np.ma.concatenate()
import numpy as np
x=np.ma.arange(3)
y=np.arange(3,6)
x[1]=np.ma.masked
x
y
z1=np.concatenate([x,y])
z2=np.ma.concatenate([x,y])
z1
z2
在上面的代码中
- 我们使用别名为np导入了numpy。
- 我们使用np.ma.arrange()函数创建了一个名为’x’的数组。
- 然后,我们又使用相同的np.ma.arrange()函数创建了另一个名为’y’的数组。
- 我们声明了变量’z1’并将np.concatenate()函数的返回值赋给它。
- 我们声明了变量’z2’并将np.ma.concatenate()函数的返回值赋给它。
- 最后,我们尝试打印’z1’和’z2’的值。
在输出中,’z1’和’z2’两个数组的值都保留了MaskedArray输入的掩码。
输出:
masked_array(data=[0, --, 2],
mask=[False, True, False],
fill_value=999999)
array([3, 4, 5])
masked_array(data=[0, 1, 2, 3, 4, 5],
mask=False,
fill_value=999999)
masked_array(data=[0, --, 2, 3, 4, 5],
mask=[False, True, False, False, False, False],
fill_value=999999)