在Python中,使用NumPy库进行数组拼接非常简单。主要的方法有两种:numpy.concatenate()
和numpy.stack()
。这里分别介绍它们的用法。
numpy.concatenate()
用于沿着一个轴将多个数组连接在一起。它需要以下参数:
arrays
:要连接的数组列表。这些数组必须在指定的轴上具有相同的大小。axis
:沿着哪个轴进行拼接。默认值为0,表示沿着行轴(垂直方向)拼接;若为1,则表示沿着列轴(水平方向)拼接。示例:
import numpy as np
# 创建两个数组
array1 = np.array([[1, 2], [3, 4]])
array2 = np.array([[5, 6], [7, 8]])
# 沿行轴拼接
result_axis0 = np.concatenate((array1, array2), axis=0)
print("沿行轴拼接结果:\n", result_axis0)
# 沿列轴拼接
result_axis1 = np.concatenate((array1, array2), axis=1)
print("沿列轴拼接结果:\n", result_axis1)
输出:
沿行轴拼接结果:
[[1 2]
[3 4]
[5 6]
[7 8]]
沿列轴拼接结果:
[[1 2 5 6]
[3 4 7 8]]
numpy.stack()
用于将多个数组沿着新的轴堆叠在一起。它需要以下参数:
arrays
:要堆叠的数组列表。这些数组必须具有相同的大小。axis
:沿着哪个轴进行堆叠。默认值为-1,表示自动选择合适的新轴进行堆叠。示例:
import numpy as np
# 创建两个数组
array1 = np.array([[1, 2], [3, 4]])
array2 = np.array([[5, 6], [7, 8]])
# 沿新轴堆叠
result_axis0 = np.stack((array1, array2), axis=0)
print("沿新轴堆叠结果(行方向):\n", result_axis0)
result_axis1 = np.stack((array1, array2), axis=1)
print("沿新轴堆叠结果(列方向):\n", result_axis1)
输出:
沿新轴堆叠结果(行方向):
[[1 2]
[3 4]
[5 6]
[7 8]]
沿新轴堆叠结果(列方向):
[[1 5]
[2 6]
[3 7]
[4 8]]
注意:numpy.concatatenate()
和numpy.stack()
的主要区别在于,numpy.concatenate()
会保持原始数组的形状,而numpy.stack()
会创建一个新的数组,其形状为原始数组的形状加上新的维度。