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)