[Numpy] argsort() 사용법

2023. 1. 10. 17:21

 

import numpy as np

num = [6, 2, 8, 4, 1, 7]
num_arr = np.array(num)

sort_index = np.argsort(num_arr)

print(sort_index)

[4 1 3 0 5 2]

 

 

argsort는 array를 오름차순으로 정렬한 후 해당 원소의 원래 인덱스를 출력한다.

아래 그림과 같다.

num_arr에서 원소에 해당하는 인덱스는 그림 왼쪽 아래에 나타난 index이다.

num_arr을 오름차순한다면 1, 2, 4, 6, 7, 8이 된다.

 

 

원래의 num_arr에서

원소 1의 본래 인덱스는 4이고 / 원소 2의 본래 인덱스는 1이고 ... / 원소 8의 본래 인덱스는 2이므로

[4 1 3 0 5 2] 를 출력하게 된다.

 

 

[::-1]을 붙이면 내림차순이 된다.

import numpy as np

num = [6, 2, 8, 4, 1, 7]
num_arr = np.array(num)

ascending_sort_index = np.argsort(num_arr)
descending_sort_index = np.argsort(num_arr)[::-1]

print('오름차순 : ', np.sort(num_arr))
print('인덱스 : ', ascending_sort_index)
print('\n내림차순 : ', np.sort(num_arr)[::-1])
print('인덱스 : ', descending_sort_index)

'ML > Numpy' 카테고리의 다른 글

[Numpy, Scipy] np.array, toarray() 차이  (0) 2022.12.16
[Numpy] 스칼라, 벡터, 행렬, 텐서 차이  (0) 2022.12.16
[Numpy] 넘파이 배열(np.array)  (0) 2022.11.09