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
배열에 저장했습니다.
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