高效選擇NumPy 數組中每行的特定列索引
使用NumPy 矩陣時,可能會出現需要提取特定列索引的情況基於索引列表的每行列數。對於大型資料集,使用傳統的迭代方法可能效率低。為了解決這個問題,請探索替代解決方案來優化效能。
一種方法涉及使用布林數組直接選擇。考慮一個與原始矩陣 a 形狀相同的布林矩陣 b。 b 中的每一列代表一個條件,指示是否從 a 中選擇該列。透過利用布林索引,您可以直接從 a[b] 檢索所需的列值。
例如,給定矩陣a 和布林數組b:
<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]])</code>
您可以執行直接選擇:
<code class="python">result = a[b]</code>
此操作將產生以下輸出:
<code class="python">[2, 4, 9]</code>
或者,您可以使用np.arange 建立索引陣列並對其執行直接選擇。根據布林數組產生的邏輯,此方法可能會帶來效能優勢。
<code class="python">result = a[np.arange(len(a)), [1, 0, 2]]</code>
此方法產生與布林數組解相同的輸出。
透過利用這些最佳化的選擇技術,您可以顯著提高從大型 NumPy 陣列中提取每行特定列索引的效率。
以上是如何有效率地選擇 NumPy 數組中每行的特定列索引?的詳細內容。更多資訊請關注PHP中文網其他相關文章!