> 백엔드 개발 > 파이썬 튜토리얼 > NumPy 배열에서 행당 특정 열 인덱스를 효율적으로 선택하는 방법은 무엇입니까?

NumPy 배열에서 행당 특정 열 인덱스를 효율적으로 선택하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-30 21:51:30
원래의
341명이 탐색했습니다.

How to Efficiently Select Specific Column Indexes per Row in NumPy Arrays?

NumPy 배열에서 행당 특정 열 인덱스를 효율적으로 선택

NumPy 행렬로 작업할 때 특정 열 인덱스를 추출해야 하는 시나리오가 발생할 수 있습니다. 인덱스 목록을 기반으로 한 행당 열 수입니다. 기존 반복 방법을 사용하는 것은 대규모 데이터 세트의 경우 비효율적일 수 있습니다. 이 문제를 해결하려면 성능을 최적화할 수 있는 대체 솔루션을 찾아보세요.

한 가지 접근 방식은 부울 배열을 사용하여 직접 선택하는 것입니다. 원래 행렬 a와 모양이 같은 부울 행렬 b를 생각해 보세요. b의 각 열은 a에서 해당 열을 선택할지 여부를 나타내는 조건을 나타냅니다. 부울 인덱싱을 활용하면 a[b]에서 직접 원하는 열 값을 검색할 수 있습니다.

예를 들어, 행렬 a와 부울 배열 b가 주어지면:

<code class="python">a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[False, True, False], [True, False, False], [False, False, True]])</code>
로그인 후 복사

다음을 수행할 수 있습니다. 직접 선택:

<code class="python">result = a[b]</code>
로그인 후 복사

이 작업의 결과는 다음과 같습니다.

<code class="python">[2, 4, 9]</code>
로그인 후 복사

또는 np.arange를 활용하여 인덱스 배열을 생성하고 이에 대한 직접 선택을 수행할 수도 있습니다. 부울 배열 생성 논리에 따라 이 방법은 성능 이점을 제공할 수 있습니다.

<code class="python">result = a[np.arange(len(a)), [1, 0, 2]]</code>
로그인 후 복사

이 접근 방식은 부울 배열 솔루션과 동일한 출력을 생성합니다.

이러한 최적화된 선택 기술을 활용합니다. , 대규모 NumPy 배열에서 행당 특정 열 인덱스를 추출하는 효율성을 크게 향상시킬 수 있습니다.

위 내용은 NumPy 배열에서 행당 특정 열 인덱스를 효율적으로 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿