首頁  >  文章  >  後端開發  >  如何從可變長度清單建立密集 NumPy 陣列?

如何從可變長度清單建立密集 NumPy 陣列?

Susan Sarandon
Susan Sarandon原創
2024-11-04 08:32:01904瀏覽

How to Create a Dense NumPy Array from Variable-Length Lists?

從可變長度清單產生密集 NumPy 陣列

將包含可變長度清單的 Python 序列標準轉換為 NumPy 陣列會建立一個物件類型陣列。強制執行另一種資料類型會引發 ValueError。本文示範了一種透過使用佔位符填充缺失值來產生 int32 類型的密集 NumPy 陣列的有效方法。

要將可變長度列表序列轉換為 NumPy 數組,可以使用 itertools.zip_longest itertools 模組中的函數。此函數迭代列表,當最短列表用完時停止。它使用 fillvalue 參數指定的佔位符值填入較長清單中的缺失值。

例如,考慮以下可變長度列表序列:

v = [[1], [1, 2]]

產生密集的NumPy序列中的數組,佔位符值為0,可以使用以下程式碼:

<code class="python">import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T</code>

此程式碼的輸出將是int32 類型的NumPy 數組,缺失值將替換為0:

array([[1, 0],
       [1, 2]])

此方法提供了一種在將變長列表轉換為NumPy 數組時處理變長列表的有效方法,確保資料類型一致性並使用所需佔位符填充缺失值。

以上是如何從可變長度清單建立密集 NumPy 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn