반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
Numpy argsort()로 key-value 형태 데이터 정렬하기 본문
반응형
A=60, B=87, C=72, D=96, E=84 라는 값을 정렬하고자 한다
정보를 두 개의 array에 이렇게 담았다
두 array는 지금 암묵적으로 연결되어 있는 상태이다
score를 기준으로 정렬을 했을 때 name도 같이 정려되게 하려면 어떻게 해야 할까?
Numpy의 argsort()를 이용하면 쉽게 할 수 있다
argsort()는 원본 행렬 정렬 시 정렬된 행렬의 원래 인덱스를 필요로 할 때 사용한다
이것을 이용하면 정렬 행렬의 원본 행렬 인덱스를 ndarray 형으로 반환해 준다
예를 들어보자
원본 행렬 인덱스가 0 1 2 3
원본 행렬 A가 3, 1, 9, 5 일 때
정렬 행렬은 1, 3, 5, 9
정렬된 행렬의 원본 행렬 인덱스는 1, 0, 3, 2 이다
argsort()는 1, 0, 3, 2를 ndarray 형으로 반환한다
아까 상태에서도 마찬가지로, score_array를 정렬하면 정렬된 인덱스는 0 2 4 1 3 이다
이제 사람 이름과 스코어를 정렬된 인덱스를 가지고 새로운 array를 만들어서 넣으면 된다
정렬이 완료되었다
전체 코드
name_array=np.array(['A', 'B', 'C', 'D', 'E'])
score_array=np.array([60, 87, 72, 96, 84])
sort_indices = np.argsort(score_array)
print("sort indices:", sort_indices)
name_array_sort = name_array[sort_indices]
score_array_sort = score_array[sort_indices]
print(name_array_sort)
print(score_array_sort)
반응형
'머신러닝 > 머신러닝' 카테고리의 다른 글
Object Detection_1. 개념 (0) | 2021.01.10 |
---|---|
구글 코랩colab 사용, 구글 드라이브에 연동 2021기준 (0) | 2021.01.10 |
사이킷런 - 타이타닉 생존자 ML 예측 구현하기 (0) | 2020.12.07 |
사이킷런 - 붓꽃 품종 분류하기 (0) | 2020.12.02 |
Pandas DataFrame 삭제 drop()에서 헷갈리기 쉬운 부분 (0) | 2020.11.11 |
Comments