Modul NumPy poskytuje funkciu argsort(), vracia indexy, ktoré by zoradili pole.
Modul NumPy poskytuje funkciu na vykonanie nepriameho triedenia spolu s danou osou pomocou algoritmu určeného kľúčovým slovom. Táto funkcia vracia pole indexov rovnakého tvaru ako 'a', čo by zoradilo pole.
Syntax
numpy.argsort(a, axis=-1, kind=None, order=None)
Parametre
Toto sú nasledujúce parametre vo funkcii numpy.argsort():
jvm v jazyku Java
a: array_like
Tento parameter definuje zdrojové pole, ktoré chceme triediť.
os: int alebo žiadna (voliteľné)
Tento parameter definuje os, pozdĺž ktorej sa triedenie vykonáva. Štandardne je os -1. Ak tento parameter nastavíme na None, použije sa sploštené pole.
porovnanie leva a tigra
druh: {'quicksort','mergesort','heapsort','stable'} (voliteľné)
Tento parameter definuje algoritmus triedenia. V predvolenom nastavení je algoritmus rýchle triedenie . Obaja mergesort a stabilný používajú časové triedenie pod pokrievkou. Skutočná implementácia sa bude líšiť v závislosti od typu údajov. The mergesort možnosť je zachovaná pre spätnú kompatibilitu.
poradie: str alebo zoznam str (voliteľné)
Ak je 'a' pole s definovanými poliami, tento argument určuje, ktoré polia sa majú porovnať prvé, druhé atď. Jedno pole môže byť špecifikované ako reťazec a nie všetky polia musia byť špecifikované. Ale nešpecifikované polia budú stále používať, v poradí, v akom sa objavia v dtype, na prerušenie väzby.
Vráti: index_array: ndarray, int
Táto funkcia vracia pole indexov, ktoré triedia „a“ spolu so zadanou osou. Ak 'a' je 1-D, a[index_array] dáva zoradené 'a'. Viac všeobecne, np.take_along_axis(arr1, index_array, axis=axis) vždy dáva zoradené 'a', bez ohľadu na rozmer.
Príklad 1: np.argsort()
import numpy as np a=np.array([456,11,63]) a b=np.argsort(a) b
Vo vyššie uvedenom kóde
- Importovali sme numpy s aliasom np.
- Vytvorili sme pole 'a' pomocou funkcie np.array().
- Deklarovali sme premennú 'b' a priradili vrátenú hodnotu funkcie np.argsort().
- Vo funkcii sme odovzdali pole 'a'.
- Nakoniec sme sa pokúsili vytlačiť hodnotu b.
Vo výstupe je zobrazený ndarray, ktorý obsahuje indexy (udávajú polohu prvku pre triedené pole) a dtype.
Výkon:
array([456, 11, 63]) array([1, 2, 0], dtype=int64)
Príklad 2: Pre 2-D pole (triedi pozdĺž prvej osi (nadol))
import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices
Výkon:
testovanie a typy testovania
array([[0, 1], [1, 0]], dtype=int64)
Príklad 3: Pre 2-D pole (alternatíva osi = 0)
import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices np.take_along_axis(a, indices, axis=0)
Vo vyššie uvedenom kóde
- Importovali sme numpy s aliasom np.
- Vytvorili sme 2-D pole 'a' pomocou funkcie np.array().
- Deklarovali sme indexy premenných a priradili vrátenú hodnotu funkcie np.argsort().
- Prešli sme 2-D pole „a“ a os ako 0.
- Ďalej sme použili funkciu take_along_axis() a odovzdali zdrojové pole, indexy a os.
- Táto funkcia vrátila zoradené 2-D pole.
Vo výstupe je zobrazené 2-D pole so zoradenými prvkami.
Výkon:
array([[0, 2], [3, 5]])
Príklad 4: Pre 2-D pole (triedi pozdĺž poslednej osi (naprieč))
import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices
Výkon:
json z java objektu
array([[0, 1], [1, 0]], dtype=int64)
Príklad 5: Pre 2-D pole (alternatíva osi=1)
import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices np.take_along_axis(a, indices, axis=1)
Výkon:
array([[0, 2], [3, 5]])
Príklad 6: Pre pole N-D
import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.unravel_index(np.argsort(a, axis=None), a.shape) indices a[indices] # same as np.sort(a, axis=None)
Výkon:
(array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5])
Vo vyššie uvedenom kóde
- Importovali sme numpy s aliasom np.
- Vytvorili sme 2-D pole 'a' pomocou funkcie np.array().
- Deklarovali sme premennú 'indexy' a priradili vrátenú hodnotu funkcie np.unravel_index().
- Prešli sme funkciou np.argsort() a tvarom poľa 'a'.
- Prešli sme 2-D pole 'a' a os ako 1 vo funkcii argsort().
- Ďalej sme sa pokúsili vytlačiť hodnotu indexov a a[indexov].
Vo výstupe je zobrazené pole N-D so zoradenými prvkami.
Príklad 7: Triedenie pomocou kľúčov
import numpy as np a= np.array([(0, 5), (3, 2)], dtype=[('x', ' <i4'), ('y', ' <i4')]) a b="np.argsort(a," order="('x','y'))" c="np.argsort(a," < pre> <p> <strong>Output:</strong> </p> <pre> array([(0, 5), (3, 2)], dtype=[('x', ' <i4'), ('y', ' <i4')]) array([0, 1], dtype="int64)" array([1, 0], < pre> <p> <strong>In the above code</strong> </p> <ul> <li>We have imported numpy with alias name np.</li> <li>We have created a 2-D array 'a' using np.array() function with dtype=[('x', ' <i4'), ('y', ' <i4')].< li> <li>We have declared the variables 'b' and 'c' and assigned the returned value of np.argsort() function.</li> <li>We have passed the array 'a' and order as an argument in the function.</li> <li>Lastly, we tried to print the value of 'b' and 'c'.</li> </i4'),></li></ul> <p>In the output, a sorted array has been shown with dtype=[('x', ' <i4'), ('y', ' <i4')]< p> <hr></i4'),></p></i4'),></pre></i4'),>