1차원 배열의 정렬

arr = np.random.randint(10, size=10)
print(arr)
[1 8 5 3 4 5 7 6 4 8]

print(np.sort(arr))
[1 3 4 4 5 5 6 7 8 8]

print(np.sort(arr)[::-1]) #처음부터 끝까지 역순으로 출력
[8 8 7 6 5 5 4 4 3 1]

원본 배열은 바뀌지 않고 그대로인 상태다.

arr = np.sort(arr)
arr.sort()

원본 배열의 값을 바꾸기 위해서는 위 방식을 사용하면 된다.


2차원 배열의 정렬

기본적으로 axis=1기준으로 오름차순으로 정렬된다.

arr = np.random.randint(15, size=(3,4))

print(arr)
[[ 3  7  0  8]
 [10  8  8  2]
 [ 7  3  7  1]]

print(np.sort(arr))
[[ 0  3  7  8]
 [ 2  8  8 10]
 [ 1  3  7  7]]

print(np.sort(arr, axis = 0))
[[ 3  3  0  1]
 [ 7  7  7  2]
 [10  8  8  8]]

print(np.sort(arr, axis = None))
[ 0  1  2  3  3  7  7  7  8  8  8 10]

axis = none 으로 할 경우 1차원 배열로 변경해 오름차순으로 정렬한다.


print(np.sort(arr,axis=1))
[[ 0  3  7  8]
 [ 2  8  8 10]
 [ 1  3  7  7]]

print(np.argsort(arr,axis=1))
[[2 0 1 3]
 [3 1 2 0]
 [3 1 0 2]]

print(np.sort(arr,axis=0))
[[ 3  3  0  1]
 [ 7  7  7  2]
 [10  8  8  8]]

print(np.argsort(arr,axis=0))
[[0 2 0 2]
 [2 0 2 1]
 [1 1 1 0]]