Python 中的 numpy.concatenate()

2025年3月17日 | 阅读 3 分钟

concatenate() 函数是 NumPy 包中的一个函数。此函数主要用于组合 NumPy 数组。该函数主要用于沿指定轴连接两个或多个形状相同的数组。需要记住以下几点:

  1. NumPy 的 concatenate() 与传统的数据库连接不同。它类似于堆叠 NumPy 数组。
  2. 此函数可以垂直和水平操作。这意味着我们可以水平或垂直地连接数组。
numpy.concatenate()

concatenate() 函数通常写成 np.concatenate(),但我们也可以写成 numpy.concatenate()。这取决于导入 numpy 包的方式,分别是 import numpy as np 或 import numpy。

语法

参数

1) (a1, a2, ...)

此参数定义数组的序列。这里,a1、a2、a3 ... 是形状相同的数组,除了对应于轴的维度。

2) axis:int(可选)

此参数定义将沿其连接数组的轴。默认情况下,其值为 0。

结果

它将返回一个 ndarray,其中包含两个数组的元素。

示例 1:numpy.concatenate()

在上面的代码中

  • 我们使用别名 np 导入了 numpy。
  • 我们使用 np.array() 函数创建了一个数组 'x'。
  • 然后,我们使用相同的 np.array() 函数创建了另一个数组 'y'。
  • 我们声明了变量 'z',并为其分配了 np.concatenate() 函数的返回值。
  • 我们在函数中传递了数组 'x' 和 'y'。
  • 最后,我们尝试打印 'z' 的值。

在输出中,两个数组(即 'x' 和 'y')的值根据 axis=0 显示。

输出

array([[ 1,  2],
       	[ 3,  4],
       	[12, 30]])

示例 2:axis=0 的 numpy.concatenate()

输出

array([[ 1,  2],
       	[ 3,  4],
       	[12, 30]])

示例 3:axis=1 的 numpy.concatenate()

输出

array([[ 1,  2, 12],
       	[ 3,  4, 30]])

在上面的示例中,'.T' 用于将行更改为列,将列更改为行。

示例 4:axis=None 的 numpy.concatenate()

输出

array([ 1,  2,  3,  4, 12, 30])

在上面的示例中,我们使用了 np.concatenate() 函数。此函数不会保留 MaskedArray 输入的屏蔽。以下是可以通过其连接数组的方式,可以保留 MaskedArray 输入的屏蔽。

示例 5:np.ma.concatenate()

在上面的代码中

  • 我们使用别名 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)