壓縮 NumPy 陣列
本教程將介紹在 Python 中將兩個 1D NumPy 陣列壓縮為單個 2D NumPy 陣列的方法。
帶有 list(zip())
函式的 NumPy Zip
如果我們有兩個一維陣列並且想將它們壓縮到一個二維陣列中,我們可以使用 Python 中的 list(zip())
函式。這種方法涉及將陣列壓縮到一個列表中。list(zip(a,b))
函式將陣列 a
和 b
作為引數並返回一個列表。然後我們可以使用 numpy.array()
函式將壓縮列表轉換為陣列。請參考以下程式碼示例。
import numpy as np
a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])
c = np.array(list(zip(a, b)))
print(c)
輸出:
[[1 2]
[3 4]
[5 6]
[7 8]]
我們首先使用 np.array()
函式建立了兩個一維陣列 a
和 b
,並使用 np.array(list(zip(a,b)))
函式將它們壓縮在一起。
這種方法效率不高,因為我們必須在陣列和列表之間進行轉換。
使用 numpy.stack()
函式的 NumPy Zip
我們還可以使用 numpy.stack()
函式來實現與前一個示例相同的目標。這種方法比以前的方法更有效,因為沒有執行型別轉換。numpy.stack()
函式 用於根據指定的軸連線兩個或多個陣列。我們可以指定 axis
引數等於 1
以獲得與前一個示例類似的結果。請參考以下程式碼示例。
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([6, 7, 8, 9, 10])
c = np.stack((a, b), axis=1)
print(c)
輸出:
[[1 2]
[3 4]
[5 6]
[7 8]]
我們首先使用 np.array()
函式建立了兩個一維陣列 a
和 b
,並使用 np.stack((a,b), axis=1)
函式將它們壓縮在一起。
使用 numpy.column_stack()
函式的 NumPy Zip
numpy.column_stack()
函式是另一種方法,可用於在 Python 中將兩個一維陣列壓縮為單個二維陣列。numpy.column_stack()
函式用於將兩個或多個一維陣列作為列連線到單個二維陣列中。我們不必為此方法指定任何軸引數。請參考以下程式碼示例。
import numpy as np
a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])
d = np.column_stack((a, b))
print(d)
輸出:
[[1 2]
[3 4]
[5 6]
[7 8]]
我們首先使用 np.array()
函式建立了兩個一維陣列 a
和 b
,並使用 np.column_stack(a,b)
函式將它們壓縮在一起。
與前兩種方法相比,這種方法是最好的。因為沒有型別轉換,我們不必在這種方法中指定任何軸。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn