정렬 함수
- np.sort(ndarray)
- ndarray.sort()
- np 자체에 존재하는 정렬 함수 np.sort(ndarray), 배열을 정렬, 재대입 해주지 않으면 정렬이 유지되지 않음, 원본 유지, 반환값 있음, 원본 array에 재할당 해줘야 함
- ndarray를 파이썬 기본 ndarray.sort() 함수 사용, 배열 자체를 정렬하면서 동시에 원본 변경, 반환값 없음, 자동으로 array에 정렬되어 재할당
원본 데이터의 훼손을 방지하기 위해 반환값 있고, 없고, 원본에 바로 반영하고, 안 하고 나누어 사용
📍 np.sort(arr) 를 사용하여 원본을 훼손하지 않게끔 하는 방식 추천
arr3 = np.array([1, 10, 5, 8, 2, 4, 3, 8, 9, 10])
# 1. np의 기본 정렬 함수 사용, 재할당 해주지 않으면 정렬이 유지되지 않음
np.sort(arr3) # 반환값 있음, 원본 array에 재할당 해줘야 함
arr3 # array([ 1, 10, 5, 8, 2, 4, 3, 8, 9, 10])
arr3 = np.sort(arr3) # 재할당 해줌
arr3 # array([ 1, 2, 3, 4, 5, 8, 8, 9, 10, 10])
# 2. array에 바로 sort() 함수 사용함, np 자체 함수는 아니지만 배열 자체를 정렬하면서 동시에 원본 저장
arr3.sort() # 반환값 없음. 자동으로 array에 정렬되어 재할당
arr3 # array([ 1, 2, 3, 4, 5, 8, 8, 9, 10, 10])
⭐ N 차원 정렬
- 행을 기준으로 열 방향으로 정렬, axis=0
- 열을 기준으로 행 방향으로 정렬, axis=1 (default), 축(axis)을 수평으로 두어 정렬한다는 의미
arr2d = np.array([[5,6,7,8],
[4,3,2,1],
[10,9,12,11]])
arr2d.shape # (3, 4)
arr2d
'''
array([[ 5, 6, 7, 8],
[ 4, 3, 2, 1],
[10, 9, 12, 11]])
'''
# 행 방향으로 정렬
np.sort(arr2d, axis=1)
'''
array([[ 5, 6, 7, 8],
[ 1, 2, 3, 4],
[ 9, 10, 11, 12]])
'''
# 열 방향으로 정렬
np.sort(arr2d, axis=0)
'''
array([[ 4, 3, 2, 1],
[ 5, 6, 7, 8],
[10, 9, 12, 11]])
'''
행 방향 정렬 axis=1 (default)
np.sort(arr2d)
'''
array([[ 5, 6, 7, 8],
[ 1, 2, 3, 4],
[ 9, 10, 11, 12]])
'''
'Python > 데이터 분석' 카테고리의 다른 글
[pandas] pandas - Series, DataFrame (0) | 2022.04.02 |
---|---|
[Numpy] Numpy 배열의 통계함수 (0) | 2022.04.02 |
[Numpy] Numpy 배열의 Indexing & Slicing (0) | 2022.04.02 |
[Numpy] Numpy 배열의 연산 (0) | 2022.04.02 |
[Numpy] Numpy 배열의 속성 및 함수 (0) | 2022.04.02 |
댓글