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