首頁 >後端開發 >Python教學 >如何在 Numpy 數組中高效搜尋匹配行?

如何在 Numpy 數組中高效搜尋匹配行?

Susan Sarandon
Susan Sarandon原創
2024-10-21 18:17:30596瀏覽

How to Efficiently Search for a Matching Row in a Numpy Array?

如何高效檢查Numpy 數組是否匹配行

要確定Numpy 數組是否包含特定行,終止操作至關重要一旦找到匹配,終止操作就避免不必要的迭代。

可能的解決方案

  • 使用 .tolist(): 轉換數組到 Python 列表並使用“in”運算符。如果匹配行位於數組開頭附近,此方法特別有效。
  • 使用視圖: 建立陣列的視圖,從而能夠與目標行進行逐行比較。
  • 迭代 Numpy 列表: 產生數組元素,根據目標行測試每一行。然而,這種方法相對較慢。
  • 利用 numpy 邏輯函數:應用 np.equal() 執行逐元素比較,然後使用 .all(1).any( ) 方法來判斷是否有任何行與目標相符。

效能比較

在不同大小的陣列上測試這些方法表明 numpy 程式在搜尋方面始終表現出色速度。所花費的時間與是否找到或錯過匹配項無關。

例如,numpy「view」方法在大約0.01 秒內搜尋300,000 x 3 元素數組,無論目標行位於何處或

相比之下,Python 的「in」運算符對於早期匹配(例如0.003 秒)會明顯更快,而生成器技術對於詳盡搜尋則明顯較慢(例如6.47 秒)。

結論

為了在Numpy 數組中進行高效的行匹配,建議將np.equal() 與.all(1).any() 結合使用,因為它無論搜尋結果如何,都能提供一致的效能。

以上是如何在 Numpy 數組中高效搜尋匹配行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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