np.concatenate()
是 NumPy 库中用于连接数组的函数,可将多个数组沿指定轴连接成一个数组。以下是其详细用法:
基本语法
numpy.concatenate((a1, a2, ...), axis=0, out=None)
-
参数:
-
a1, a2, ...
:需要连接的数组,这些数组的维度必须一致。 -
axis
:沿哪个轴连接数组,默认为 0,表示沿第一个轴连接。 -
out
:可选参数,指定输出数组的存放位置。
-
使用示例
一维数组拼接
Python复制
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.concatenate((a, b))
print(result) # 输出:[1 2 3 4 5 6]
二维数组拼接
Python复制
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
# 按行拼接(axis=0)
result_row = np.concatenate((a, b), axis=0)
print(result_row)
# 输出:
# [[1 2]
# [3 4]
# [5 6]
# [7 8]]
# 按列拼接(axis=1)
result_col = np.concatenate((a, b), axis=1)
print(result_col)
# 输出:
# [[1 2 5 6]
# [3 4 7 8]]
多维数组拼接
Python复制
a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
b = np.array([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
# 按第一个轴拼接
result_axis0 = np.concatenate((a, b), axis=0)
print(result_axis0.shape) # 输出:(4, 2, 2)
# 按第二个轴拼接
result_axis1 = np.concatenate((a, b), axis=1)
print(result_axis1.shape) # 输出:(2, 4, 2)
# 按第三个轴拼接
result_axis2 = np.concatenate((a, b), axis=2)
print(result_axis2.shape) # 输出:(2, 2, 4)
注意事项
-
维度一致性:连接的数组在除了连接轴之外的其他维度上必须具有相同的大小,否则会报错。
-
参数灵活性:除了用元组形式传入多个数组外,还可以用列表形式传入。
-
高维数组处理:对于高维数组,需根据具体需求选择合适的轴进行连接。