首頁 >後端開發 >Python教學 >如何有效率地選擇 NumPy 數組中每行的特定列索引?

如何有效率地選擇 NumPy 數組中每行的特定列索引?

Linda Hamilton
Linda Hamilton原創
2024-10-30 21:51:30348瀏覽

How to Efficiently Select Specific Column Indexes per Row in NumPy Arrays?

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

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