numpy.argsort() v Pythonu
numpy.argsort() funkcija se uporablja za izvajanje posrednega razvrščanja vzdolž dane osi z uporabo algoritma, ki ga določa ključna beseda kind. Vrne matriko indeksov enake oblike kot arr, ki bi razvrstila matriko. Pomeni indekse vrednosti, razvrščene v naraščajočem vrstnem redu
Sintaksa: numpy.argsort(arr, axis=-1, kind='quicksort', order=None)
Parametri:
arr : [array_like] Vhodna matrika. axis : [int ali None] Os, po kateri želite razvrstiti. Če Ni, je matrika pred razvrščanjem sploščena. Privzeta vrednost je -1, ki razvrsti vzdolž zadnje osi. vrsta : ['quicksort', 'mergesort', 'heapsort']Izbirni algoritem. Privzeto je »hitro razvrščanje«. vrstni red : [str ali seznam str] Ko je arr matrika z definiranimi polji, ta argument določa, katera polja naj se primerjajo prva, druga itd.
Vrnitev: [index_array, ndarray] Niz indeksov, ki razvršča arr vzdolž podane osi. Če je arr enodimenzionalen, vrne arr[index_array] razvrščen arr.
Koda #1:
Python3
# 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])> |
Izhod:
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]
Koda #2:
Python3
# 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)> |
Izhod:
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]]
Koda #3:
Python
# 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> ]]> |
Izhod:
array([2, 5, 0, 1, 4, 6, 3], dtype=int32) array([6, 3], dtype=int32) array([3, 6], dtype=int32) array([100, 68])