Razvrščanje matrike NumPy | Kako razvrstiti NumPy Array
Razvrščanje matrike je zelo pomemben korak pri analizi podatkov, saj pomaga pri razvrščanju podatkov ter olajša iskanje in čiščenje.
V tej vadnici se bomo naučili kako razvrstiti matriko v NumPy . Matriko lahko razvrstite v NumPy:
- Uporaba funkcije np.sort().
- vrstično razvrščanje
- razvrščanje po različnih oseh
- Uporaba funkcije np.argsort().
- Uporaba funkcije np.lexsort().
Uporaba funkcije sort().
metoda sort() razvrsti element dane podatkovne strukture (tukaj niz). Pokličite funkcijo sortiranja z matričnim objektom, da razvrstite elemente.
Obstajata dva primera razvrščanja matrike z metodo sort():
- Razvrsti matriko NumPy na mestu
- Razvrsti matriko NumPy vzdolž osi
Obe metodi bomo opisali s spodnjim primerom:
Razvrsti matriko na mestu
Razvrščanje matrike na mestu pomeni neposredno razvrščanje izvirnih elementov matrike.
Ne ustvari nove kopije polja in je zelo učinkovit pri pomnilniku.
Primer
Uporaba metode sort() za razvrščanje elementov v matriki NumPy na mestu.
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)> |
Izhod:
Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15]
Razvrsti niz vzdolž različnih osi
Ta metoda ustvari razvrščeno kopijo podane matrike NumPy.
Večinoma se uporablja v večdimenzionalnem nizu, ko želite razvrstiti po dani dimenziji.
Primer
Uporaba metode sort() do elementov v matriki NumPy vzdolž osi
Python3
# 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)> |
Izhod:
Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15]
Uporaba argsort()
metoda argsort(). je posreden način razvrščanja matrike NumPy vzdolž dane osi.
Vrne an niz indeksov ki bi prvotno matriko razvrstil v naraščajočem vrstnem redu.
Primer
Uporaba argsort() za razvrščanje elementov v matriki NumPy
Python3
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)> |
Izhod:
Original array: [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] Razvrščeno polje-> [1 3 3 4 6 7 9]>>>Uporaba zaporedja ključev
Razvrščanje matrike z uporabo zaporedja ključev nam omogoča razvrščanje matrike na podlagi več kriterijev.
To metodo lahko uporabite s funkcijo np.lexsort(). Funkcija lexsort() vrne matriko indeksov, ki bi razvrstila izvirno matriko.
Primer
Pridobite stabilno razvrščanje z uporabo zaporedja ključev.
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)> |
Izhod:
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]
Preverite tudi: Razvrščanje, iskanje in štetje v NumPy
Zaključek
Razvrščanje matrike NumPy olajša iskanje podvojenih, največjih in najmanjših elementov. Je bistvena operacija manipulacije podatkov, ki olajša delo s podatki.
V tej vadnici smo obravnavali tri metode za razvrščanje matrike v NumPy, tj. sort(), argsort() in lexsort(). Vse te metode nudijo različne funkcije za razvrščanje ndarray v NumPy. Metode smo razložili z enostavnimi besedami in primeri, da boste popolnoma razumeli temo.