首頁  >  文章  >  後端開發  >  如何使用 NumPy 中的清單按索引高效選擇列?

如何使用 NumPy 中的清單按索引高效選擇列?

Linda Hamilton
Linda Hamilton原創
2024-10-27 02:11:30815瀏覽

How Can I Efficiently Select Columns by Index Using Lists in NumPy?

NumPy:使用清單依索引高效率選擇列

許多資料操作任務都涉及從 NumPy 矩陣中選擇特定欄位。當要選擇的列每行不同時,一個簡單的方法是迭代數組,這對於大型資料集來說計算成本可能很高。

但是,NumPy 使用布林或整數陣列提供了更最佳化的解決方案。您可以建立與原始矩陣形狀相同的矩陣,而不是列索引列表,其中每列都包含指示是否應選擇該列的值。

例如,考慮以下矩陣:

[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]

以及以下索引矩陣:

[[False, True, False],
[True, False, False],
[False, False, True]]

使用NumPy 的直接選擇,您可以輕鬆提取所需的值:

<code class="python">a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[False, True, False], [True, False, False], [False, False, True]])
selected_values = a[b]</code>

這將產生所需的輸出:

[2, 4, 9]

或者,您可以使用arange() 函數並直接選擇以獲得更高的效率:

<code class="python">selected_values = a[np.arange(len(a)), [1, 0, 2]]</code>

透過利用最佳化的NumPy 選擇方法,您可以顯著提高透過改變每行索引選擇列時資料操作任務的效能。

以上是如何使用 NumPy 中的清單按索引高效選擇列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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