Triedenie poľa je veľmi dôležitým krokom v analýze údajov, pretože pomáha pri zoraďovaní údajov a uľahčuje vyhľadávanie a čistenie.
V tomto návode sa to naučíme ako triediť pole v NumPy . Pole môžete zoradiť v NumPy:
- Pomocou funkcie np.sort().
- in-line triedenie
- triedenie podľa rôznych osí
- Použitie funkcie np.argsort().
- Pomocou funkcie np.lexsort().
Použitie funkcie sort().
metóda sort() triedi prvok danej dátovej štruktúry (tu pole). Zavolajte funkciu triedenia s objektom poľa na triedenie prvkov.
Existujú dva prípady triedenia poľa pomocou metódy sort():
- Zoraďte pole NumPy na miesto
- Zoradiť pole NumPy pozdĺž osí
Obe tieto metódy pokryjeme príkladom nižšie:
Zoradiť pole na mieste
Triedenie poľa na mieste znamená priame triedenie pôvodných prvkov poľa.
Nevytvára novú kópiu poľa a je veľmi pamäťovo efektívny.
výhody a nevýhody technológie
Príklad
Použitie metódy sort() na zoradenie prvkov v poli NumPy na mieste.
Python3
# importing libraries> import> numpy as np> > a>=> np.array([>12>,>15>,>10>,>1>])> print>(>'Array before sorting'>,a)> a.sort()> print>(>'Array after sorting'>,a)> |
>
>
Výkon:
Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15]>
Zoradiť pole pozdĺž rôznych osí
Táto metóda vytvorí zoradenú kópiu daného poľa NumPy.
Väčšinou sa používa vo viacrozmernom poli, keď chcete triediť podľa danej dimenzie.
Príklad
Použitie metódy sort() na prvky v poli NumPy pozdĺž osi
Python3
c program pre dvojrozmerné pole
# importing libraries> import> numpy as np> # sort along the first axis> a>=> np.array([[>12>,>15>], [>10>,>1>]])> arr1>=> np.sort(a, axis>=> 0>)> print> (>'Along first axis :
'>, arr1)> # sort along the last axis> a>=> np.array([[>10>,>15>], [>12>,>1>]])> arr2>=> np.sort(a, axis>=> ->1>)> print> (>'
Along first axis :
'>, arr2)> a>=> np.array([[>12>,>15>], [>10>,>1>]])> arr1>=> np.sort(a, axis>=> None>)> print> (>'
Along none axis :
'>, arr1)> |
>
>
Výkon:
Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15]>
Použitie argsort()
metóda argsort(). je nepriamy spôsob triedenia poľa NumPy pozdĺž danej osi.
Vracia an rad indexov to by zoradilo pôvodné pole vzostupne.
Príklad
Použitie argsort() na triedenie prvkov v poli NumPy
Python3
binárne typy stromov
import> numpy as np> > # Numpy array created> a>=> np.array([>9>,>3>,>1>,>7>,>4>,>3>,>6>])> > # unsorted array print> print>(>'Original array:
'>, a)> > # Sort array indices> b>=> np.argsort(a)> print>(>'Sorted indices of original array->'>, b)> > # To get sorted array using sorted indices> # c is temp array created of same len as of b> c>=> np.zeros(>len>(b), dtype>=> int>)> for> i>in> range>(>0>,>len>(b)):> >c[i]>=> a[b[i]]> print>(>'Sorted array->'>, c)> |
>
>
Výkon:
Original array: [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] Zoradené pole-> [1 3 3 4 6 7 9]>
Použitie postupnosti klávesov
Triedenie poľa pomocou sekvencie kľúčov nám umožňuje triediť pole na základe viacerých kritérií.
Túto metódu môžete použiť s funkciou np.lexsort(). Funkcia lexsort() vracia pole indexov, ktoré by zoradili pôvodné pole.
Príklad
Získajte stabilné triedenie pomocou sekvencie klávesov.
Python3
import> numpy as np> > # Numpy array created> # First column> a>=> np.array([>9>,>3>,>1>,>3>,>4>,>3>,>6>])> > # Second column> b>=> np.array([>4>,>6>,>9>,>2>,>1>,>8>,>7>])> print>(>'column a, column b'>)> for> (i, j)>in> zip>(a, b):> >print>(i,>' '>, j)> > # Sort by a then by b> ind>=> np.lexsort((b, a))> print>(>'Sorted indices->'>, ind)> |
stiahnite si videá z youtube vlc
>
>
Výkon:
column a, column b 9 4 3 6 1 9 3 2 4 1 3 8 6 7 Sorted indices->[2 3 1 5 4 6 0]>
Skontrolujte tiež: Triedenie, vyhľadávanie a počítanie v NumPy
Záver
Triedenie poľa NumPy uľahčuje hľadanie duplicitných, maximálnych a minimálnych prvkov. Je to základná operácia manipulácie s údajmi, ktorá uľahčuje prácu s údajmi.
V tomto návode sme sa zaoberali tromi metódami, ako triediť pole v NumPy, tj sort(), argsort() a lexsort(). Všetky tieto metódy poskytujú rôzne funkcie na triedenie ndarray v NumPy. Vysvetlili sme metódy jednoduchými slovami s príkladmi, aby ste úplne pochopili tému.