29. NumPy 어레이 정렬 (np.argsort)


NumPy 어레이 정렬하기 - argsort()

NumPy의 argsort() 함수를 사용해서 어레이를 정렬하는 방법에 대해 소개합니다.




기본 사용

예제

import numpy as np

a = np.array([1.5, 0.2, 4.2, 2.5])
s = a.argsort()

print(s)
print(a[s])
[1 0 3 2]
[0.2 1.5 2.5 4.2]

a는 정렬되지 않은 숫자들의 어레이입니다.

a.argsort()는 어레이 a를 정렬하는 인덱스의 어레이 [1 0 3 2]를 반환합니다.

a[s]와 같이 인덱스의 어레이 s를 사용해서 어레이 a를 다시 정렬하면,

오름차순으로 정렬된 어레이 [0.2 1.5 2.5 4.2]가 됩니다.


NumPy 어레이 정렬하기 - argsort() - 기본 사용

NumPy 어레이 정렬하기 - argsort() - 기본 사용




내림차순 정렬하기

예제

import numpy as np

a = np.array([1.5, 0.2, 4.2, 2.5])
s = a.argsort()

print(s)
print(a[s[::-1]])
print(a[s][::-1])
[1 0 3 2]
[4.2 2.5 1.5 0.2]
[4.2 2.5 1.5 0.2]

내림차순으로 정렬된 어레이를 얻기 위해서는

a[s[::-1]]와 같이 인덱스 어레이를 뒤집어서 정렬에 사용하거나,

a[s][::-1]과 같이 오름차순으로 정렬된 어레이를 뒤집어주면 됩니다.


_images/numpy_argsort_02.png

어레이 내림차순 정렬하기.



두 어레이를 함께 정렬하기

두 개의 어레이에 대해 하나의 어레이를 기준으로 다른 어레이를 정렬할 수 있습니다.

예제

import numpy as np

a = np.array([1.5, 0.2, 4.2, 2.5])
b = np.array([3.7, 2.4, 0.3, 1.9])

s = a.argsort()
a = a[s]
b = b[s]

print(a)
print(b)
[1.5 0.2 4.2 2.5]
[2.4 3.7 1.9 0.3]

s는 어레이 a를 정렬하는 인덱스 어레이 [1 0 3 2]입니다.

b[s]와 같이 사용하면, 어레이 a의 오름차순 순서를 기준으로 어레이 b가 정렬됩니다.



이전글/다음글