>백엔드 개발 >파이썬 튜토리얼 >`where` 함수를 사용하여 여러 조건을 충족하는 Numpy 배열에서 요소를 선택하는 방법은 무엇입니까?

`where` 함수를 사용하여 여러 조건을 충족하는 Numpy 배열에서 요소를 선택하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-27 19:15:01562검색

How to Select Elements from a Numpy Array Satisfying Multiple Conditions using the `where` Function?

Numpy Where 함수 및 다중 조건

이 질문은 Numpy where 함수 및 다중 조건에 따른 요소 선택과 관련이 있습니다.

문제 및 문제 설명

사용자가 특정 범위에 속하는 배열(dists)의 요소를 선택하기 위해 두 가지 조건(보다 큼 및 보다 작음)을 적용하려고 합니다. 그러나 where 함수를 (np.where(dists >= r)) 및 (np.where(dists <= r dr))로 사용하면 예상치 못한 결과가 발생합니다.

해결책

방법 1: 조건을 단일 기준으로 결합

이 특별한 경우에는 두 조건을 단일 기준으로 결합하는 것이 좋습니다.

dists[abs(dists - r - dr/2.) <= dr/2.]

이 간단한 접근 방식은 거리와 범위 중심(r dr/2) 간의 차이의 절대값이 범위 너비(dr/2)의 절반보다 작거나 같은지 확인합니다.

방법 2: 팬시 인덱싱 사용

또는 팬시 인덱싱을 사용하여 부울 마스크를 사용하여 원래 배열에서 요소를 직접 선택할 수 있습니다.

dists[(dists >= r) & (dists <= r + dr)]

이 방법의 이점 방법은 요소별 논리 연산자(& 및 |)를 사용하여 조건을 결합하여 기준을 충족하는 요소를 식별하는 바이너리 마스크를 생성한다는 것입니다.

문제 설명

(np.where(dists >= r)) 및 (np.where(dists <= r dr))를 사용하는 원래 접근 방식은 np.where가 부울 배열이 아닌 인덱스 목록을 반환하기 때문에 실패합니다. 두 숫자 목록 사이를 비교하면 논리적 비교가 아닌 두 번째 목록이 평가됩니다.

위 내용은 `where` 함수를 사용하여 여러 조건을 충족하는 Numpy 배열에서 요소를 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.