Numpy 배열의 요소 순서를 지정하는 방법(예제 포함)


다음 방법 중 하나를 사용하여 NumPy 배열의 요소 순서를 계산할 수 있습니다.

방법 1: NumPy에서 argsort() 사용

 import numpy as np

ranks = np. array (my_array). argsort (). argsort ()

방법 2: SciPy의 Rankdata() 사용

 from scipy. stats import rankdata

ranks = rankdata(my_array)

다음 예에서는 다음 NumPy 배열을 사용하여 실제로 각 메서드를 사용하는 방법을 보여줍니다.

 import numpy as np

#define array of values
my_array = np. array ([3, 5, 2, 1, 9, 9])

#view array
print (my_array)

[3 5 2 1 9 9]

예제 1: argsort()를 사용하여 NumPy 배열의 요소 정렬

다음 코드는 NumPy의 argsort() 함수를 사용하여 배열 요소를 정렬하는 방법을 보여줍니다.

 #calculate rank of each item in array
ranks = np. array (my_array). argsort (). argsort ()

#view ranks
print (ranks)

[2 3 1 0 4 5]

결과에는 원래 배열의 각 요소 순위가 표시되며, 0은 가장 낮은 값을 나타냅니다.

이 접근 방식의 장점은 추가 모듈을 로드할 필요가 없다는 점이지만, argsort()에는 링크를 처리하는 방법이 하나만 있다는 단점이 있습니다.

기본적으로 argsort()는 순서 메서드를 사용하여 링크를 처리합니다. 즉, 먼저 나타나는 연결된 값에 자동으로 낮은 순위가 부여됩니다.

예제 2: Rankdata()를 사용하여 NumPy 배열의 요소 순위 지정

다음 코드는 SciPy의 Rankdata() 함수를 사용하여 배열 요소의 순위를 지정하는 방법을 보여줍니다.

 from scipy. stats import rankdata

#calculate rank of each item in array
ranks = rankdata(my_array)

#view ranks
print (ranks)

array([3. , 4. , 2. , 1. , 5.5, 5.5])

결과에는 원본 배열의 각 요소 순위가 표시되며, 1은 가장 작은 값을 나타냅니다.

0이 가장 작은 값을 나타내도록 하려면 각 값에서 1을 빼면 됩니다.

 from scipy. stats import rankdata

#calculate rank of each item in array
ranks = rankdata(my_array) - 1

#view ranks
print (ranks)

[2. 3. 1. 0. 4.5 4.5]

기본적으로 Rankdata() 함수는 동률이 있는 모든 값에 평균 순위를 할당합니다.

그러나 메소드 인수를 사용하여 링크를 다른 방식으로 처리할 수 있습니다.

예를 들어, 다음 코드는 링크 관리 방법으로 서수를 사용하는 방법을 보여줍니다.

 from scipy. stats import rankdata

#calculate rank of each item in array
ranks = rankdata(my_array, method=' ordinal ') - 1

#view ranks
print (ranks)

[2 3 1 0 4 5]

이는 NumPy의 argsort() 메소드와 동일한 결과를 생성합니다.

다른 링크 관리 방법에는 min , maxdark 가 포함됩니다.

SciPy 문서 에서 각 방법에 대해 알아보세요.

추가 리소스

다음 튜토리얼에서는 NumPy에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

NumPy 배열에서 중복 요소를 제거하는 방법
NumPy 부동 소수점 배열을 정수로 변환하는 방법
NumPy 행렬을 배열로 변환하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다