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

Susan Sarandon
發布: 2024-10-21 18:22:03
原創
872 人瀏覽過

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

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!