numpy.concatenate函数用于沿指定轴连接两个或多个数组。它可以合并同类型的数组,并支持指定合并的轴(默认情况下为轴0,即按行连接)。本文主要介绍一下NumPy中concatenate方法的使用。

numpy.concatenate

numpy.concatenate((a1, a2, ...), axis=0, out=None)

沿现有轴(axis)连接一系列数组。

参数 :

a1, a2, … :array_like的sequence

数组必须具有相同的形状,

除了对应于轴的尺寸(默认为第一个)。

axisint, 可选

阵列将沿其连接的轴。 如果axis为None

则在使用前将数组展平。 默认值为0

outndarray, 可选

如果提供,则为放置结果的目的地。 形状必须正确,

并且与未指定out参数的concatenate连接的形状匹配。

返回值 :

resndarray

串联数组。

Notes

当要串联的一个或多个数组为MaskedArray时,此函数将返回MaskedArray对象而不是ndarray,但不会保留输入掩码。 如果需要使用MaskedArray作为输入,请改用MaskedArray模块中的ma.concatenate函数。

例子

1)沿行方向(axis=0)连接数组

import numpy as np

# 创建两个2x2的数组
array1 = np.array([[1, 2], [3, 4]])
array2 = np.array([[5, 6], [7, 8]])

# 沿行方向(axis=0)连接
result = np.concatenate((array1, array2), axis=0)
print(result)

2)多个一维数组的连接

import numpy as np

# 创建三个一维数组
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
array3 = np.array([7, 8, 9])

# 沿一维数组连接
result = np.concatenate((array1, array2, array3))
print(result)

3) 三维数组连接

import numpy as np

# 创建两个三维数组
array1 = np.array([[[1, 2], [3, 4]]])
array2 = np.array([[[5, 6], [7, 8]]])

# 沿axis=0连接
result = np.concatenate((array1, array2), axis=0)
print(result)

4)沿不同轴连接数组以及在使用 MaskedArray

import numpy as np

# 创建两个二维数组 a 和 b
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])

# 沿列方向(axis=1)连接数组
result2 = np.concatenate((a, b.T), axis=1)
print("沿列方向(axis=1)连接数组:\n", result2)

# 将数组展平并连接(axis=None)
result3 = np.concatenate((a, b), axis=None)
print("展平并连接数组:\n", result3)

# 注意:此函数不会保留 `MaskedArray` 输入的掩码

# 创建一个带掩码的数组 a
a_masked = np.ma.array([0, 1, 2])
a_masked[1] = np.ma.masked  # 对第二个元素进行掩码
b = np.array([2, 3, 4])

# 打印带掩码的数组 a
print("带掩码的数组 a:\n", a_masked)

# 打印普通数组 b
print("普通数组 b:\n", b)

# 使用 `np.concatenate` 合并,掩码不会被保留
result4 = np.concatenate([a_masked, b])
print("使用 np.concatenate 合并(掩码不保留):\n", result4)

# 使用 `np.ma.concatenate` 合并,掩码将被保留
result5 = np.ma.concatenate([a_masked, b])
print("使用 np.ma.concatenate 合并(掩码保留):\n", result5)

推荐文档

相关文档

大家感兴趣的内容

随机列表