logo

Python의 numpy.argsort()

numpy.argsort() 함수는 kind 키워드로 지정된 알고리즘을 사용하여 지정된 축을 따라 간접 정렬을 수행하는 데 사용됩니다. 배열을 정렬하는 arr과 동일한 모양의 인덱스 배열을 반환합니다. 오름차순으로 정렬된 값의 인덱스를 의미합니다.

구문: numpy.argsort(arr, axis=-1, kind='quicksort', order=None)



매개변수:

    arr : [array_like] 입력 배열입니다. axis : [int or None] 정렬할 축입니다. 없음인 경우 정렬하기 전에 배열이 평면화됩니다. 기본값은 -1이며 마지막 축을 따라 정렬됩니다. 종류 : ['quicksort', 'mergesort', 'heapsort']선택 알고리즘. 기본값은 '퀵 정렬'입니다. order : [str or list of str] arr이 정의된 필드가 있는 배열인 경우 이 인수는 첫 번째, 두 번째 등을 비교할 필드를 지정합니다.

반품: [index_array, ndarray] 지정된 축을 따라 arr을 정렬하는 인덱스 배열입니다. arr이 1차원인 경우 arr[index_array]는 정렬된 arr을 반환합니다.

코드 #1:



파이썬3




숫자로 알파벳



# Python program explaining> # argpartition() function> import> numpy as geek> # input array> in_arr>=> geek.array([>2>,>0>,>1>,>5>,>4>,>1>,>9>])> print>(>'Input unsorted array : '>, in_arr)> out_arr>=> geek.argsort(in_arr)> print>(>'Output sorted array indices : '>, out_arr)> print>(>'Output sorted array : '>, in_arr[out_arr])>

CSS 굵은 텍스트
>

>

산출:

Input unsorted array : [2 0 1 5 4 1 9] Output sorted array indices : [1 2 5 0 4 3 6] Output sorted array : [0 1 1 2 4 5 9]>

코드 #2:

파이썬3


pyspark



# Python program explaining> # argpartition() function> import> numpy as geek> # input 2d array> in_arr>=> geek.array([[>2>,>0>,>1>], [>5>,>4>,>3>]])> print>(>'Input array : '>, in_arr)> # output sorted array indices> out_arr1>=> geek.argsort(in_arr, kind>=>'mergesort'>, axis>=>0>)> print>(>'Output sorted array indices along axis 0: '>, out_arr1)> out_arr2>=> geek.argsort(in_arr, kind>=>'heapsort'>, axis>=>1>)> print>(>'Output sorteded array indices along axis 1: '>, out_arr2)>

>

>

산출:

Input array : [[2 0 1] [5 4 3]] Output sorted array indices along axis 0: [[0 0 0] [1 1 1]] Output sorted array indices along axis 1: [[1 2 0] [2 1 0]]>

코드 #3:

파이썬


리눅스 make 명령



# get two largest value from numpy array> x>=>np.array([>12>,>43>,>2>,>100>,>54>,>5>,>68>])> # using argsort get indices of value of arranged in ascending order> np.argsort(x)> #get two highest value index of array> np.argsort(x)[>->2>:]> # to arrange in ascending order of index> np.argsort(x)[>->2>:][::>->1>]> # to get highest 2 values from array> x[np.argsort(x)[>->2>:][::>->1>]]>

>

>

산출:

array([2, 5, 0, 1, 4, 6, 3], dtype=int32) array([6, 3], dtype=int32) array([3, 6], dtype=int32) array([100, 68])>