首頁 >後端開發 >Python教學 >如何將可變長度 Python 列表轉換為帶有佔位符的密集 NumPy 數組?

如何將可變長度 Python 列表轉換為帶有佔位符的密集 NumPy 數組?

Barbara Streisand
Barbara Streisand原創
2024-11-03 22:03:03566瀏覽

How to Convert Variable-Length Python Lists to a Dense NumPy Array with Placeholders?

有效地將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中文網其他相關文章!

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