NumPy 배열 정렬 | NumPy 배열을 정렬하는 방법
배열 정렬은 데이터 정렬에 도움이 되고 검색 및 정리가 더 쉬워지므로 데이터 분석에서 매우 중요한 단계입니다.
이 튜토리얼에서 우리는 배울 것입니다 NumPy에서 배열을 정렬하는 방법 . NumPy에서 배열을 정렬할 수 있습니다.
- np.sort() 함수 사용
- 인라인 정렬
- 다른 축을 따라 정렬
- np.argsort() 함수 사용
- np.lexsort() 함수 사용
sort() 함수 사용
sort() 메소드는 주어진 데이터 구조(여기서는 배열)의 요소를 정렬합니다. 요소를 정렬하려면 배열 객체로 정렬 함수를 호출하세요.
sort() 메서드를 사용하여 배열을 정렬하는 두 가지 경우가 있습니다.
- NumPy 배열을 제자리에 정렬
- 축을 따라 NumPy 배열 정렬
아래 예를 통해 이 두 가지 방법을 모두 다루겠습니다.
배열 내부 정렬
배열을 제자리에 정렬한다는 것은 원래 배열 요소를 직접 정렬하는 것을 의미합니다.
새로운 배열 복사본을 생성하지 않으며 메모리 효율성이 매우 높습니다.
예
sort() 메서드를 사용하여 NumPy 배열의 요소를 제자리에 정렬합니다.
파이썬3
# importing libraries> import> numpy as np> > a> => np.array([> 12> ,> 15> ,> 10> ,> 1> ])> print> (> 'Array before sorting'> ,a)> a.sort()> print> (> 'Array after sorting'> ,a)> |
산출:
Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15]
다른 축을 따라 배열 정렬
이 메소드는 주어진 NumPy 배열의 정렬된 복사본을 생성합니다.
주어진 차원을 따라 정렬하려는 경우 다차원 배열에서 주로 사용됩니다.
예
축을 따라 NumPy 배열의 요소에 sort() 메서드 사용
파이썬3
# importing libraries> import> numpy as np> # sort along the first axis> a> => np.array([[> 12> ,> 15> ], [> 10> ,> 1> ]])> arr1> => np.sort(a, axis> => 0> )> print> (> 'Along first axis :
'> , arr1)> # sort along the last axis> a> => np.array([[> 10> ,> 15> ], [> 12> ,> 1> ]])> arr2> => np.sort(a, axis> => -> 1> )> print> (> '
Along first axis :
'> , arr2)> a> => np.array([[> 12> ,> 15> ], [> 10> ,> 1> ]])> arr1> => np.sort(a, axis> => None> )> print> (> '
Along none axis :
'> , arr1)> |
산출:
Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15]
argsort() 사용
argsort() 메서드 주어진 축을 따라 NumPy 배열을 정렬하는 간접적인 방법입니다.
그것은 인덱스 배열 그러면 원래 배열이 오름차순으로 정렬됩니다.
예
argsort()를 사용하여 NumPy 배열의 요소 정렬
파이썬3
import> numpy as np> > # Numpy array created> a> => np.array([> 9> ,> 3> ,> 1> ,> 7> ,> 4> ,> 3> ,> 6> ])> > # unsorted array print> print> (> 'Original array:
'> , a)> > # Sort array indices> b> => np.argsort(a)> print> (> 'Sorted indices of original array->'> , b)> > # To get sorted array using sorted indices> # c is temp array created of same len as of b> c> => np.zeros(> len> (b), dtype> => int> )> for> i> in> range> (> 0> ,> len> (b)):> > c[i]> => a[b[i]]> print> (> 'Sorted array->'> , c)> |
산출:
Original array: [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] 정렬된 배열-> [1 3 3 4 6 7 9]
키 순서 사용
일련의 키를 사용하여 배열을 정렬하면 여러 기준에 따라 배열을 정렬할 수 있습니다.
이 방법을 np.lexsort() 함수와 함께 사용할 수 있습니다. lexsort() 함수는 원래 배열을 정렬하는 인덱스 배열을 반환합니다.
예
일련의 키를 사용하여 안정적인 정렬을 얻습니다.
파이썬3
import> numpy as np> > # Numpy array created> # First column> a> => np.array([> 9> ,> 3> ,> 1> ,> 3> ,> 4> ,> 3> ,> 6> ])> > # Second column> b> => np.array([> 4> ,> 6> ,> 9> ,> 2> ,> 1> ,> 8> ,> 7> ])> print> (> 'column a, column b'> )> for> (i, j)> in> zip> (a, b):> > print> (i,> ' '> , j)> > # Sort by a then by b> ind> => np.lexsort((b, a))> print> (> 'Sorted indices->'> , ind)> |
산출:
column a, column b 9 4 3 6 1 9 3 2 4 1 3 8 6 7 Sorted indices->[2 3 1 5 4 6 0]
또한 확인하십시오: NumPy에서 정렬, 검색 및 계산
결론
NumPy 배열을 정렬하면 중복 요소, 최대 요소, 최소 요소를 더 쉽게 찾을 수 있습니다. 데이터 조작의 필수 작업으로, 데이터 작업을 보다 쉽게 해줍니다.
이 튜토리얼에서는 NumPy에서 배열을 정렬하는 방법, 즉 sort(), argsort() 및 lexsort()에 대한 세 가지 방법을 다루었습니다. 이러한 모든 방법은 NumPy에서 ndarray를 정렬하는 다양한 기능을 제공합니다. 주제에 대한 완전한 이해를 돕기 위해 예제와 함께 쉬운 단어로 방법을 설명했습니다.