logo

numpy.argsort() v Pythone

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=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) a b="np.argsort(a," order="(&apos;x&apos;,&apos;y&apos;))" c="np.argsort(a," < pre> <p> <strong>Output:</strong> </p> <pre> array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <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 &apos;a&apos; using np.array() function with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')].< li> <li>We have declared the variables &apos;b&apos; and &apos;c&apos; and assigned the returned value of np.argsort() function.</li> <li>We have passed the array &apos;a&apos; and order as an argument in the function.</li> <li>Lastly, we tried to print the value of &apos;b&apos; and &apos;c&apos;.</li> </i4'),></li></ul> <p>In the output, a sorted array has been shown with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]< p> <hr></i4'),></p></i4'),></pre></i4'),>