logo

numpy.argsort() v Pythonu

Modul NumPy poskytuje funkci argsort(), vrací indexy, které by seřadily pole.

Modul NumPy poskytuje funkci pro provádění nepřímého řazení podél dané osy pomocí algoritmu určeného klíčovým slovem. Tato funkce vrací pole indexů stejného tvaru jako 'a', což by pole seřadilo.

Syntax

 numpy.argsort(a, axis=-1, kind=None, order=None) 

Parametry

Toto jsou následující parametry ve funkci numpy.argsort():

statická java

a: array_like

Tento parametr definuje zdrojové pole, které chceme třídit.

osa: int nebo Žádná (volitelné)

Tento parametr definuje osu, podél které se řazení provádí. Ve výchozím nastavení je osa -1. Pokud tento parametr nastavíme na None, použije se zploštělé pole.

druh: {'quicksort','mergesort','heapsort','stable'} (volitelné)

Tento parametr definuje algoritmus řazení. Ve výchozím nastavení je algoritmus rychlé třídění . Oba Sloučit třídění a stabilní používají časové třídění pod pokličkou. Skutečná implementace se bude lišit podle typu dat. The Sloučit třídění volba je zachována pro zpětnou kompatibilitu.

pořadí: str nebo seznam str (volitelné)

Pokud je 'a' pole s definovanými poli, tento argument určuje, která pole se mají porovnat jako první, druhá atd. Jedno pole lze zadat jako řetězec a nemusí být zadáno všechna pole. Ale blíže nespecifikovaná pole budou stále používat, v pořadí, v jakém se objeví v dtype, k přerušení vazeb.

najít můj iphone android

Vrací: index_array: ndarray, int

Tato funkce vrací pole indexů, které třídí „a“ podle zadané osy. Pokud je 'a' 1-D, a[index_array] dává seřazené 'a'. Obecněji, np.take_along_axis(arr1, index_array, axis=axis) vždy dává seřazené 'a', bez ohledu na rozměr.

Příklad 1: np.argsort()

 import numpy as np a=np.array([456,11,63]) a b=np.argsort(a) b 

Ve výše uvedeném kódu

jméno
  • Importovali jsme numpy s aliasem np.
  • Vytvořili jsme pole 'a' pomocí funkce np.array().
  • Deklarovali jsme proměnnou 'b' a přiřadili vrácenou hodnotu funkce np.argsort().
  • Předali jsme pole 'a' ve funkci.
  • Nakonec jsme zkusili vytisknout hodnotu b.

Ve výstupu byl ukázán ndarray, který obsahuje indexy (označují polohu prvku pro seřazené pole) a dtype.

Výstup:

 array([456, 11, 63]) array([1, 2, 0], dtype=int64) 

Příklad 2: Pro 2-D pole (třídí podle první osy (dolů))

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices 

Výstup:

 array([[0, 1], [1, 0]], dtype=int64) 

Příklad 3: Pro 2-D pole (alternativa osy=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) 

Ve výše uvedeném kódu

  • Importovali jsme numpy s aliasem np.
  • Vytvořili jsme 2-D pole 'a' pomocí funkce np.array().
  • Deklarovali jsme proměnné indexy a přiřadili vrácenou hodnotu funkce np.argsort().
  • Předali jsme 2-D pole „a“ a osu jako 0.
  • Dále jsme použili funkci take_along_axis() a předali zdrojové pole, indexy a osu.
  • Tato funkce vrátila seřazené 2D pole.

Ve výstupu je zobrazeno 2-D pole se seřazenými prvky.

Výstup:

 array([[0, 2], [3, 5]]) 

Příklad 4: Pro 2-D pole (třídí podle poslední osy (napříč))

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices 

Výstup:

 array([[0, 1], [1, 0]], dtype=int64) 

Příklad 5: Pro 2-D pole (alternativa osy=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ýstup:

 array([[0, 2], [3, 5]]) 

Příklad 6: Pro 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ýstup:

 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

Ve výše uvedeném kódu

  • Importovali jsme numpy s aliasem np.
  • Vytvořili jsme 2-D pole 'a' pomocí funkce np.array().
  • Deklarovali jsme proměnnou 'indexy' a přiřadili vrácenou hodnotu funkce np.unravel_index().
  • Předali jsme funkci np.argsort() a tvar pole 'a'.
  • Předali jsme 2-D pole 'a' a osu jako 1 ve funkci argsort().
  • Dále jsme zkusili vytisknout hodnotu indexů a a[indexů].

Ve výstupu je zobrazeno N-D pole se seřazenými prvky.

string valueof

Příklad 7: Třídění pomocí klíčů

 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'),>