>백엔드 개발 >파이썬 튜토리얼 >Numpy 배열에서 일치하는 행을 효율적으로 검색하는 방법은 무엇입니까?

Numpy 배열에서 일치하는 행을 효율적으로 검색하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-21 18:17:30597검색

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으로 문의하세요.