NumPy로 여러 개의 최대값 찾기
NumPy 배열은 np.argmax를 사용하여 단일 최대값을 찾는 것을 포함하여 통계 연산을 위한 다양한 기능을 제공합니다. 그러나 상위 N개의 최대값을 식별해야 하는 시나리오의 경우 np.argmax가 충족할 수 없는 특정 요구 사항이 있습니다.
해결책: 최신 NumPy 버전에서 np.argpartition 활용
NumPy 버전 1.8 이상에서는 np.argpartition 함수가 이에 대한 솔루션을 제공합니다. 문제. 이 함수를 사용하면 N개의 가장 큰 요소의 인덱스를 얻을 수 있습니다.
예를 들어 배열 [1, 3, 2, 4, 5]를 생각해 보세요. 가장 큰 4개 요소의 인덱스를 검색하려면:
import numpy as np a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0]) ind = np.argpartition(a, -4)[-4:] top_four = a[ind]
다음 결과가 출력됩니다.
array([1, 5, 8, 0]) array([4, 9, 6, 9])
여기서 'ind'는 가장 큰 4개 요소의 인덱스를 나타내고, 'top_four'가 해당 값입니다.
순서에 대한 색인 정렬 출력
필요한 경우 해당 배열 요소에 대해 np.argsort를 호출하여 인덱스를 추가로 정렬할 수 있습니다.
sorted_ind = ind[np.argsort(a[ind])]
이렇게 하면 다음에서 상위 k 요소를 얻을 수 있습니다. O(n k log k)의 시간 복잡도로 정렬된 순서입니다.
위 내용은 NumPy 배열에서 상위 N개 최대값의 인덱스를 어떻게 찾을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!