본문 바로가기
Python/Pandas & numpy

Numpy sort/argsort

by Mr.DonyStark 2024. 3. 14.

□ 기본적으로 오름차순 / 내림차순은 [::-1]

□ np.sort(ndarray) : 인자로 들어온 행렬은 그대로 유지한 채 원 행렬의 정렬된 행렬 반환
□ ndarray.sort : 행렬 자체를 정렬한 형태로 변환하며 반환값은 None

org_array = np.array([3,1,9,5])
print(org_array)
print("\n")
print("오름차순")
sort_org_array = np.sort(org_array)
print(sort_org_array)
print("\n")
print("내림차순")
desc_sort_org_array = np.sort(org_array)[::-1]
print(desc_sort_org_array)
print("\n")

 

org_array = np.array([[3,2,1],[6,4,5]])
print(org_array.ndim)
print(org_array.shape)
print(org_array)
print("\n")
print("오름차순 행방향")
sort_org_array1 = np.sort(org_array, axis=0) #행방향
print(sort_org_array1)
print("\n")
print("오름차순 열방향")
sort_org_array2= np.sort(org_array, axis=1) #열방향
print(sort_org_array2)
print("\n")
print("내림차순")
desc_sort_org_array = np.sort(org_array)[::-1]
print(desc_sort_org_array)
print("\n")

 

□ arsort() : 원본행렬 정렬시 정렬된 행렬의 원래 인덱스를 필요로할 때 np.argsort이용. 정렬행렬의 원본행렬인덱스를 ndarray 형으로 반환. 정렬된 원소에 해당하는 인덱스(원본기준)가 반환

org_array = np.array([6,7,4,3,2,1,9,8])
argsort_org_array = np.argsort(org_array)
print(argsort_org_array)
argsort_org_array = np.argsort(org_array)[::-1]
print(argsort_org_array)

#예시
name_array = np.array(['홍길동','손흥민','이강인','김민재','김구'])
score_array = np.array([100,80,38,59,90])

argsort_score_array = np.argsort(score_array)
print("\n")
print(argsort_score_array)
print("\n")
print(name_array[argsort_score_array])

정렬전 선수 홍길동 손흥민 이강인 김민재 김구
정렬전 선수
인덱스
0 1 2 3 4
정렬전 점수 100 80 38 59 90
정렬전 점수
인덱스
0 1 2 3 4
argsort 후 점수
인덱스(오름차순)
2 3 1 4 0
선수 array에
argsort 인덱스 적용
이강인 김민재 손흥민 김구 홍길동

 

'Python > Pandas & numpy' 카테고리의 다른 글

Numpy dot/transpose  (0) 2024.03.14
Numpy 배열 병합/분할  (0) 2024.03.10
Numpy 인덱스 번호를 활용한 임의값 추가 및 삭제  (0) 2024.03.10
Numpy 전치행렬  (0) 2024.03.09
Numpy 차원축소  (0) 2024.03.09