有效地將Python 變長列表轉換為密集NumPy 數組
將變長Python 列表直接轉換為NumPy 數字結果在“對象Py 數字組”類型的數組中,這可能是不可取的。或者,嘗試使用 np.array(v, dtype=np.int32) 強制指定類型會因數組中存在序列而導致異常。
因此,要建立一個密集的NumPy 數組特定資料類型(例如int32),同時使用佔位符填充缺失值,您可以利用itertools.zip_longest
例如,考慮輸入序列v = [[1], [1, 2]],使用佔位符為0 的itertools.zip_longest ,可以高效地獲得密集的NumPy 數組,如下所示:
<code class="python">import itertools np.array(list(itertools.zip_longest(*v, fillvalue=0))).T</code>
這將產生所所需的輸出:
array([[1, 0], [1, 2]])
請注意,對於Python 2,使用itertools.izip_longest 取代。
以上是如何將可變長度 Python 列表轉換為帶有佔位符的密集 NumPy 數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!