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=[('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'),>