將包含可變長度清單的 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中文網其他相關文章!