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를 정렬하는 다양한 기능을 제공합니다. 주제에 대한 완전한 이해를 돕기 위해 예제와 함께 쉬운 단어로 방법을 설명했습니다.