sort
넘파이에서 행렬정렬은 np.sort() 방식과 ndarray.sort()방식이 있다.
np.argsort()를 이용해서 원본 행렬의 인덱스가 정렬 후 변경된 인덱스를 반환
- argsort()는 넘파이의 ndarray로만 가져와야한다. (df안됨)
✔️sort 기본예제
# 원본 행렬
org_array = np.array([3,1,9,5])
print('원본 행렬:', org_array)
## 원본 행렬: [3 1 9 5]
# np.sort로 정렬
sort_array1 = np.sort(org_array)
print('np.sort()호출 후 반환된 정렬행렬:',sort_array1)
print('np.sort()호출 후 반환된 원본행렬:', org_array)
## np.sort()호출 후 반환된 정렬행렬: [1 3 5 9]
## np.sort()호출 후 반환된 원본행렬: [3 1 9 5] # np.sort는 원본행렬은 변경안함
sort_array2 = org_array.sort()
print('org_array.sort()호출 후 반환된 행렬:', sort_array2)
print('org_array.sort()호출 후 원본 행렬:', org_array)
## org_array.sort()호출 후 반환된 행렬: None
## org_array.sort()호출 후 원본 행렬: [1 3 5 9] # ndarray.sort()는 원본자체를 정렬해서 반환
# 내림차순 정렬
sort_array1_desc = np.sort(org_array)[::-1]
print('내림차순으로 정렬:', sort_array1_desc)
## 내림차순으로 정렬: [9 5 3 1]
- np.sort는 원본행렬은 변경을 안한다.
- ndarray.sort( ) 는 원본자체를 정렬해서 반환한다.
✔️로우(row)방향 정렬, 컬럼 방향 정렬
array2 = np.array([[8,12],
[7,1]])
sort_array2_axis0 = np.sort(array2, axis=0)
print('로우방향으로 정렬:\\n', sort_array2_axis0)
# 로우방향으로 정렬:
# [[ 7 1]
# [ 8 12]]
sort_array2_axis1 = np.sort(array2, axis=1)
print('컬럼방향으로 정렬:\\n', sort_array2_axis1)
# 컬럼방향으로 정렬:
# [[ 8 12]
# [ 1 7]]
sort와 reverse
sort( )는 기준에 따라 오름차순 또는 내림차순 정렬을 하는 것이고,
reverse( )는 단순히 리스트의 순서를 뒤집는 것입니다.
1. sort로 정렬하기
A = [5, 2, 8]
A.sort() # 원본을 정렬하고 수정
print('A:', A)
print('정렬후 A:', A)
[OUT]
A: [5, 2, 8]
정렬후 A: [2, 5, 8]
2. 역정렬하기
A = [5, 2, 8]
A.sort(reverse=True) # 역정렬하고 수정
print('A:', A)
print('역정렬후 A:', A)
[OUT]
A: [5, 2, 8]
역정렬후 A: [8, 5, 2]
3. 순서 뒤집기
A = [5, 2, 8]
A.reverse()
print('A:', A)
print('뒤집은 A:', A)
[OUT]
A: [5, 2, 8]
역정렬후 A: [8, 2, 5]
'🛠️Skill > Python' 카테고리의 다른 글
[Python] 여러개 함수 사용 agg() (0) | 2022.11.20 |
---|---|
[Python] 숫자인지 문자인지 확인하기 isdigit / isalpha (0) | 2022.11.02 |
[Python] 데이터 합치기 Join, merge, concat (0) | 2022.10.11 |
[Python] 클래스(class) / 인스턴스, 객체, self, super 이해하기 (0) | 2022.10.05 |
[Python] Function/가변인자, 지역변수, 전역변수, 사용자 입력 함수 input (0) | 2022.10.03 |
댓글