首頁  >  文章  >  後端開發  >  在 NumPy 數組中尋找特定行的有效方法:問題和解決方案

在 NumPy 數組中尋找特定行的有效方法:問題和解決方案

Susan Sarandon
Susan Sarandon原創
2024-10-21 18:22:03874瀏覽

Efficient Ways to Find a Specific Row in a NumPy Array: Questions and Solutions

高效查找NumPy 數組中特定行的實例

使用NumPy 數組時,可能會遇到需要確定是否array 包含特定行,但ndarray 的標準contains 方法會引發問題。本文針對此問題提出了高效且 Python 的解決方案。

一種方法涉及使用 .tolist() 將 NumPy 數組轉換為 Python 列表,並對列表執行成員資格檢查。

a = np.array([[1,2],[10,20],[100,200]])
[1,2] in a.tolist() # Returns True
[1,20] in a.tolist() # Returns False

另一種方法是使用數組上的視圖並應用 .all(1) 函數將每一行與目標行按元素進行比較。

any((a[:]==[1,2]).all(1)) # Returns True
any((a[:]==[1,20]).all(1)) # Returns False

此外,可以在 NumPy 清單上產生潛在的效能提升。然而,如果沒有儘早找到結果,這種方法可能會效率低。

any(([1,2] == x).all() for x in a) # Stops on first occurrence

最後,NumPy 的邏輯函數提供了一種簡潔的方法來執行比較。

any(np.equal(a,[1,2]).all(1)) # Returns True

基準測試結果顯示無論命中或未命中情況如何,numpy 例程都會保持一致的搜尋速度。視圖、邏輯相等和 Python in 運算子方法在效率方面相當,但不建議使用 NumPy 上的生成器進行全數組搜尋。

以上是在 NumPy 數組中尋找特定行的有效方法:問題和解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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