numpy.argsort() i Python

numpy.argsort() funksjonen brukes til å utføre en indirekte sortering langs den gitte aksen ved å bruke algoritmen spesifisert av kind-nøkkelordet. Den returnerer en rekke indekser med samme form som arr som vil sortere matrisen. Det betyr verdiindekser ordnet i stigende rekkefølge

Syntaks: numpy.argsort(arr, axis=-1, kind=’quicksort’, order=None)

Parametere:

    arr : [array_like] Inndatamatrise. akse : [int eller ingen] Akse som skal sorteres langs. Hvis ingen, blir matrisen flatet ut før sortering. Standard er -1, som sorterer langs den siste aksen. type : ['quicksort', 'mergesort', 'heapsort']Utvalgsalgoritme. Standard er 'hurtigsortering'. rekkefølge : [str eller liste over str] Når arr er en matrise med felt definert, spesifiserer dette argumentet hvilke felt som skal sammenlignes først, andre osv.

Komme tilbake: [index_array, ndarray] Array av indekser som sorterer arr langs den angitte aksen. Hvis arr er endimensjonal, returnerer arr[index_array] en sortert arr.

Kode #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])>

Produksjon:

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] 

Kode #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)>

Produksjon:

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]] 

Kode #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> ]]>

Produksjon:

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