numpy.concatenate
numpy.concatenate((a1, a2, ...), axis=0, out=None)
沿现有轴(axis)连接一系列数组。
参数 : | a1, a2, … :array_like的sequence 数组必须具有相同的形状, 除了对应于轴的尺寸(默认为第一个)。 axis : 阵列将沿其连接的轴。 如果axis为 则在使用前将数组展平。 默认值为 out : 如果提供,则为放置结果的目的地。 形状必须正确, 并且与未指定out参数的concatenate连接的形状匹配。 |
返回值 : | res : 串联数组。 |
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)