NumPy 배열에서 여러 값의 행 인덱스를 찾는 방법은 무엇입니까?
Dec 07, 2024 am 06:16 AMNumpy 배열에서 여러 값의 행 인덱스 찾기
문제:
우리는 NumPy 배열 X와 searched_values 값 세트가 제공됩니다. 목표는 searched_values의 각 값에 해당하는 X의 행 인덱스를 결정하는 것입니다.
예를 들어 다음 입력 배열의 경우:
X = np.array([[4, 2], [9, 3], [8, 5], [3, 3], [5, 6]]) searched_values = np.array([[4, 2], [3, 3], [5, 6]])
원하는 출력은 다음과 같아야 합니다.
[0, 3, 4]
접근 방법 #1: NumPy 브로드캐스트
이 접근 방식은 NumPy 브로드캐스팅을 활용하여 X와 검색된_값의 각 행 간의 요소별 비교를 수행합니다.
np.where((X == searched_values[:, None]).all(-1))[1]
접근 방식 #2: np를 사용한 메모리 효율적인 변환 .in1d
메모리를 절약하기 위해 각각을 변환할 수 있습니다. X 행과 searched_values를 선형 인덱스 등가물로 변환한 다음 교차점에 np.in1d를 적용합니다.
dims = X.max(0) + 1 out = np.where(np.in1d(np.ravel_multi_index(X.T, dims), np.ravel_multi_index(searched_values.T, dims)))[0]
접근 방법 #3: np.searchsorted를 사용한 메모리 효율적인 변환
np.searchsorted를 사용하는 또 다른 메모리 효율적인 접근 방식과 동일한 선형 인덱스 철학 변환:
dims = X.max(0) + 1 X1D = np.ravel_multi_index(X.T, dims) searched_valuesID = np.ravel_multi_index(searched_values.T, dims) sidx = X1D.argsort() out = sidx[np.searchsorted(X1D, searched_valuesID, sorter=sidx)]
np.ravel_multi_index 이해
np.ravel_multi_index는 X의 각 행을 고유한 선형 인덱스로 변환합니다. 이는 n차원 인덱스의 2D 배열과 이러한 인덱스가 매핑될 n차원 그리드의 모양에서 작동합니다.
예를 들어, 이 예에서 X의 각 행은 인덱싱 튜플을 나타냅니다. 치수가 희미한 2D 그리드의 경우. np.ravel_multi_index는 이러한 각 튜플을 고유한 선형 인덱스에 매핑합니다.
위 내용은 NumPy 배열에서 여러 값의 행 인덱스를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까?
