numpy.argsort() w Pythonie
numpy.argsort() Funkcja służy do pośredniego sortowania wzdłuż zadanej osi przy użyciu algorytmu określonego słowem kluczowym kind. Zwraca tablicę indeksów o tym samym kształcie co arr, która sortowałaby tablicę. Oznacza to wskaźniki wartości ułożone w porządku rosnącym
Składnia: numpy.argsort(arr, oś=-1, rodzaj=’szybkie sortowanie’, zamówienie=Brak)
Parametry:
arr : [array_like] Tablica wejściowa. oś: [int lub Brak] Oś, wzdłuż której sortowane jest. Jeśli Brak, tablica jest spłaszczana przed sortowaniem. Wartość domyślna to -1, która sortuje wzdłuż ostatniej osi. rodzaj: [„szybkie sortowanie”, „sortowanie przez scalanie”, „sortowanie na stercie”] Algorytm selekcji. Wartość domyślna to „szybkie sortowanie”. kolejność : [str lub lista str] Gdy arr jest tablicą ze zdefiniowanymi polami, ten argument określa, które pola należy porównać jako pierwsze, drugie itd.
Powrót: [index_array, ndarray] Tablica indeksów sortujących tablicę wzdłuż określonej osi. Jeśli arr jest jednowymiarowa, wówczas arr[index_array] zwraca posortowaną tablicę.
Kod nr 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])> |
Wyjście:
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]
Kod nr 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)> |
Wyjście:
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]]
Kod nr 3:
Pyton
# 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> ]]> |
Wyjście:
array([2, 5, 0, 1, 4, 6, 3], dtype=int32) array([6, 3], dtype=int32) array([3, 6], dtype=int32) array([100, 68])