logo

numpy.argsort() Pythonban

A NumPy modul egy argsort() függvényt biztosít, amely visszaadja azokat az indexeket, amelyek egy tömböt rendeznek.

A NumPy modul egy olyan funkciót biztosít, amely a kulcsszó által megadott algoritmus segítségével közvetett rendezést hajt végre az adott tengely mentén. Ez a függvény az „a”-val azonos alakú indexek tömbjét adja vissza, amely rendezi a tömböt.

Szintaxis

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

Paraméterek

Ezek a következő paraméterek a numpy.argsort() függvényben:

aláhúzás css segítségével

a: array_like

Ez a paraméter határozza meg azt a forrástömböt, amelyet rendezni szeretnénk.

tengely: belső vagy nincs (opcionális)

Ez a paraméter határozza meg azt a tengelyt, amely mentén a rendezés végrehajtódik. Alapértelmezés szerint a tengely -1. Ha ezt a paramétert None-ra állítjuk, akkor a lapított tömb kerül felhasználásra.

java fordított karakterlánc

fajta: {'quicksort','mergesort','heapsort','stable'} (opcionális)

Ez a paraméter határozza meg a rendezési algoritmust. Alapértelmezés szerint az algoritmus gyorsválogatás . Mindkét mergesort és stabil időrendet használnak a takaró alatt. A tényleges megvalósítás az adattípustól függően változik. A mergesort opció megmarad a visszafelé kompatibilitás érdekében.

sorrend: str vagy str listája (nem kötelező)

Ha az 'a' egy meghatározott mezőket tartalmazó tömb, ez az argumentum határozza meg, hogy mely mezőket kell először, másodszor stb. összehasonlítani. Az egyetlen mező megadható karakterláncként, és nem kell minden mezőt megadni. De a nem meghatározott mezők továbbra is a dtype-ben megjelenő sorrendben fogják használni a kapcsolatok megszakítását.

Visszatér: index_array: ndarray, int

Ez a függvény indexek tömbjét adja vissza, amelyek az „a”-t a megadott tengellyel együtt rendezik. Ha 'a' értéke 1-D, az a[index_array] rendezett 'a'-t eredményez. Általánosabban, np.take_along_axis(arr1, index_array, axis=tengely) mindig a rendezett „a”-t adja, függetlenül a dimenziótól.

1. példa: np.argsort()

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

A fenti kódban

  • Importáltuk a numpy-t np aliasnévvel.
  • Létrehoztunk egy 'a' tömböt az np.array() függvény segítségével.
  • Deklaráltuk a 'b' változót, és hozzárendeltük az np.argsort() függvény visszaadott értékét.
  • A függvényben átadtuk az 'a' tömböt.
  • Végül megpróbáltuk kinyomtatni a b értékét.

A kimenetben egy ndarray látható, amely tartalmazza az indexeket (az elem pozícióját jelzi a rendezett tömbhöz) és a dtype-ot.

Kimenet:

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

2. példa: 2-D tömb esetén (rendezés az első tengely mentén (le))

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

Kimenet:

java bemeneti karakterlánc
 array([[0, 1], [1, 0]], dtype=int64) 

3. példa: 2-D tömb esetén (tengely=0 alternatívája)

 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) 

A fenti kódban

  • Importáltuk a numpy-t np aliasnévvel.
  • Létrehoztunk egy kétdimenziós „a” tömböt az np.array() függvény segítségével.
  • Deklaráltuk a változó indexeket, és hozzárendeltük az np.argsort() függvény visszaadott értékét.
  • Az „a” kétdimenziós tömböt és a tengelyt 0-nak adtuk át.
  • Ezután a take_along_axis() függvényt használtuk, és átadtuk a forrástömböt, az indexeket és a tengelyt.
  • Ez a függvény visszaadta a rendezett 2-D tömböt.

A kimenetben egy kétdimenziós tömb látható rendezett elemekkel.

Kimenet:

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

4. példa: 2-D tömb esetén (az utolsó tengely mentén rendezi (keresztbe))

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

Kimenet:

java szünet
 array([[0, 1], [1, 0]], dtype=int64) 

5. példa: 2-D tömb esetén (tengely=1 alternatívája)

 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) 

Kimenet:

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

6. példa: N-D tömbhöz

 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) 

Kimenet:

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

A fenti kódban

  • Importáltuk a numpy-t np aliasnévvel.
  • Létrehoztunk egy kétdimenziós „a” tömböt az np.array() függvény segítségével.
  • Deklaráltunk egy 'indexes' változót, és hozzárendeltük az np.unravel_index() függvény visszaadott értékét.
  • Az 'a' tömb np.argsort() függvényét és alakját teljesítettük.
  • Az argsort() függvényben az 'a' 2-D tömböt és az tengelyt 1-nek adtuk át.
  • Ezután megpróbáltuk kinyomtatni az indexek és a[indexek] értékét.

A kimenetben egy N-D tömb látható rendezett elemekkel.

7. példa: Rendezés gombokkal

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