在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()
會創建一個新的數組,其形狀為原始數組的形狀加上新的維度。