파이썬으로 데이터를 다룰 때에 가장 많이 쓰는 패키지중 하나인 numpy
에는 argsort()
라는 유용한 메소드가 있습니다. argsort()
는 아래와 같이 정렬되기 전의 인덱스를 리스트 형태로 반환합니다.
import numpy as np
array1 = np.array([1,0,9,3])
sort_indice = np.argsort(array1)
print(sort_indice)
출력값
>>[1,0,3,2]
이를 이용해 데이터베이스에서 가져온 서로 다른 테이블의 값을 정렬할 수 있습니다. ndarray
의 특성상 서로 다른 타입의 변수들은 하나의 array에 담지 못하기 때문에, 따로 불러온뒤 정렬을 해야합니다.
name_array = np.array(['동혁', '유리', '진우', '태연', '동준']) # 이름
score_array = np.array([88, 100, 92, 95, 73]) # 점수
score_indices = np.argsort(score_array)[::-1] # 정렬 인덱스 저장 ([::-1]를 붙일 경우 내림차순)
print(name_array[score_indices]) # 정렬된 대로 name을 출력
출력값
>>>['유리' '태연' '진우' '동혁' '동준']
이처럼 각각의 array를 정렬할 필요없이 기준 array를 통해 다른 array도 정렬할 수 있습니다.
'Data Science' 카테고리의 다른 글
Attibution Method에 대하여 (4) | 2022.12.28 |
---|---|
python natsort로 파일을 "이름 순으로" 정렬해보자 (1) | 2022.04.25 |
python split-folders로 이미지 데이터 분리하기 (train/val/test) (0) | 2022.03.24 |
TPOT을 이용한 머신러닝 자동화 (AutoML with python), 파라미터 튜닝까지 (0) | 2021.12.15 |
pandas dataframe에서 apply의 진척도 보기 (progress_apply()) (2) | 2021.09.13 |