NumPy 배열의 순위 값

Muhammad Maisam Abbas 2023년1월30일
  1. numpy.argsort()메소드를 사용한 NumPy 순위
  2. Python에서scipy.stats.rankdata()함수를 사용한 NumPy 순위
NumPy 배열의 순위 값

이 자습서에서는 Python NumPy 배열 내에서 데이터의 순위를 매기는 방법을 소개합니다.

numpy.argsort()메소드를 사용한 NumPy 순위

numpy.argsort()메소드는 NumPy 배열을 정렬하는 데 사용할 수있는 인덱스를 가져 오는 데 사용됩니다. 이러한 인덱스는 배열 내의 각 요소에 대한 순위로도 사용할 수 있습니다. numpy.argsort()메소드는 배열에 의해 호출되고 배열 내부의 각 요소의 순위를 다른 배열의 형태로 반환합니다.

import numpy as np

array = np.array([1, 8, 5, 7, 9])

temp = array.argsort()

ranks = np.empty_like(temp)

ranks[temp] = np.arange(len(array))
print(array)
print(ranks)

출력:

[1 8 5 7 9]
[0 3 1 2 4]

위 코드에서numpy.argsort()함수를 사용하여 NumPy 배열array내의 요소 순위를 매겼습니다. 먼저np.array()함수로 배열을 만들었습니다. 그런 다음array.argsort()함수를 사용하고 값을temp배열에 저장했습니다. 그 후array에있는 각 요소의 순위를 포함하는 또 다른 배열ranks를 만들었습니다. 그런 다음ranks[temp] = np.arange(len(array))를 사용하여array내의 각 요소의 순위를ranks의 각 요소에 할당했습니다.

위에서 언급 한 코딩 예제에서 논의 된 방법은 잘 작동하지만numpy.argsort()함수를 두 번 사용하여 코드를 더 단순화 할 수 있습니다. 이 현상은 아래 코딩 예제에서 설명됩니다.

import numpy as np

array = np.array([1, 8, 5, 7, 9])

temp = array.argsort()

ranks = temp.argsort()
print(array)
print(ranks)

출력:

[1 8 5 7 9]
[0 3 1 2 4]

또 다른 배열ranks를 생성하고ranks = temp.argsort()를 사용하여array내의 각 요소의 순위를ranks의 각 요소에 할당했습니다.

Python에서scipy.stats.rankdata()함수를 사용한 NumPy 순위

또한scipy.stats라이브러리 내에서 rankdata()함수를 사용하여 NumPy 배열 내 각 요소의 순위를 가져올 수 있습니다. rankdata()함수는 배열을 입력 매개 변수로 사용하고 배열 내의 각 요소의 순위를 매긴 다음 동일한 길이의 다른 배열 형식으로 결과를 반환합니다.

from scipy.stats import rankdata
import numpy as np

array = np.array([1, 8, 5, 7, 9])

ranks = rankdata(array)
print(array)
print(ranks)

출력:

[1 8 5 7 9]
[1. 4. 2. 3. 5.]

먼저np.array()함수로 배열을 만들었습니다. 그런 다음rankdata(array)함수를 사용하고 값을ranks배열에 저장했습니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn