在Python中,使用NumPy库进行数组拼接非常简单。主要的方法有两种:numpy.concatenate()
和numpy.stack()
。这里分别介绍它们的用法。
- numpy.concatenate()
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()
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()
会创建一个新的数组,其形状为原始数组的形状加上新的维度。