[python] NumPy 배열의 정렬하기

NumPy는 파이썬의 과학 및 수치 계산을 위한 핵심 라이브러리로, 배열 데이터를 처리하는데 많이 활용됩니다. 이번 글에서는 NumPy를 사용하여 배열을 정렬하는 방법을 살펴보겠습니다.

1. 배열 정렬 기본

NumPy에서 배열을 오름차순으로 정렬하려면 np.sort() 함수를 사용할 수 있습니다. 이 함수는 기존 배열을 변경하지 않고 배열의 정렬 복사본을 반환합니다. 다음은 간단한 예제입니다.

import numpy as np

arr = np.array([3, 1, 2, 5, 4])
sorted_arr = np.sort(arr)
print(sorted_arr)

위 예제 코드를 실행하면 [1 2 3 4 5]가 출력될 것입니다.

2. 배열 내 인덱스 정렬

때로는 배열의 값이 아닌 인덱스로 정렬하고자 하는 경우가 있습니다. NumPy의 argsort() 함수를 사용하면 이를 수행할 수 있습니다. 다음은 예제 코드입니다.

import numpy as np

arr = np.array([3, 1, 2, 5, 4])
sorted_indices = np.argsort(arr)
print(sorted_indices)

위 코드를 실행하면 [1 2 0 4 3]이 출력될 것입니다.

3. 축별 정렬

다차원 배열의 경우 축을 기준으로 정렬할 수 있습니다. 예를 들어, 2차원 배열에서 각 행이나 열을 따로 정렬할 수 있습니다. 이를 위해 axis 매개변수를 사용합니다. 다음은 예제 코드입니다.

import numpy as np

arr = np.array([[3, 1, 2], [6, 5, 4]])
sorted_rows = np.sort(arr, axis=1)  # 각 행을 따라 정렬
sorted_columns = np.sort(arr, axis=0)  # 각 열을 따라 정렬
print(sorted_rows)
print(sorted_columns)

4. 내림차순 정렬

배열을 내림차순으로 정렬하려면 np.sort() 함수에 -1을 곱한 후 정렬하거나, np.argsort() 함수에 [::-1]을 사용하여 인덱스를 뒤집을 수 있습니다.

마무리

이번 글에서는 NumPy를 사용하여 배열을 정렬하는 방법을 알아보았습니다. NumPy의 정렬 함수를 이용하여 다양한 정렬 작업을 수행할 수 있으므로, 실제 데이터 처리에서 유용하게 활용할 수 있을 것입니다.

참고문헌: NumPy 공식 문서