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 중국어 웹사이트의 기타 관련 기사를 참조하세요!