NumPy masyvo rūšiavimas | Kaip rūšiuoti „NumPy Array“.

Masyvo rūšiavimas yra labai svarbus duomenų analizės žingsnis, nes jis padeda rūšiuoti duomenis ir palengvina paiešką bei valymą.

Šioje pamokoje mes išmoksime kaip rūšiuoti masyvą NumPy . NumPy galite rūšiuoti masyvą:

  • Naudojant np.sort() funkciją
    • rūšiavimas eilutėje
    • rūšiavimas pagal skirtingas ašis
  • Naudojant np.argsort() funkciją
  • Naudojant np.lexsort() funkciją

Naudojant funkciją sort().

Sort() metodas rūšiuoja tam tikros duomenų struktūros elementą (čia masyvas). Norėdami surūšiuoti elementus, iškvieskite rūšiavimo funkciją su masyvo objektu.

Yra du masyvo rūšiavimo atvejai naudojant sort() metodą:

  • Rūšiuoti NumPy masyvą vietoje
  • Rūšiuoti NumPy masyvą pagal ašis

Abu šiuos metodus apžvelgsime toliau pateiktu pavyzdžiu:

Rūšiuoti masyvą vietoje

Masyvo rūšiavimas vietoje reiškia tiesioginį pradinių masyvo elementų rūšiavimą.

Tai nesukuria naujos masyvo kopijos ir labai taupo atmintį.

Pavyzdys

Naudojant metodą sort() rūšiuoti NumPy masyvo elementus į vietą.

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

Išvestis:

Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15] 

Rūšiuoti masyvą pagal skirtingas ašis

Šis metodas sukuria surūšiuotą nurodyto NumPy masyvo kopiją.

Jis dažniausiai naudojamas kelių dimensijų masyve, kai norite rūšiuoti pagal tam tikrą matmenį.

Pavyzdys

Sort() metodo naudojimas NumPy masyvo elementams išilgai ašies

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

Išvestis:

Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15] 

Naudojant argsort()

argsort() metodas yra netiesioginis NumPy masyvo rūšiavimo išilgai tam tikros ašies būdas.

Tai grąžina an indeksų masyvas kuris surūšiuotų pradinį masyvą didėjančia tvarka.

Pavyzdys

Argsort() naudojimas elementams rūšiuoti NumPy masyve

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

Išvestis:

Original array:  [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] Surūšiuotas masyvas-> [1 3 3 4 6 7 9] 

Klavišų sekos naudojimas

Rūšiuodami masyvą naudodami raktų seką, galime rūšiuoti masyvą pagal kelis kriterijus.

Šį metodą galite naudoti su funkcija np.lexsort(). Funkcija lexsort() grąžina indeksų masyvą, kuris surūšiuotų pradinį masyvą.

Pavyzdys

Gaukite stabilų rūšiavimą naudodami klavišų seką.

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

Išvestis:

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] 

Taip pat patikrinkite: Rūšiavimas, paieška ir skaičiavimas naudojant „NumPy“.

Išvada

Rūšiuojant NumPy masyvą lengviau rasti pasikartojančius, didžiausius ir mažiausius elementus. Tai esminė manipuliavimo duomenimis operacija, palengvinanti darbą su duomenimis.

Šioje pamokoje apžvelgėme tris būdus, kaip rūšiuoti masyvą programoje NumPy, ty sort(), argsort() ir lexsort(). Visi šie metodai suteikia skirtingas funkcijas, skirtas rūšiuoti „ndarray“ programoje „NumPy“. Mes paaiškinome metodus paprastais žodžiais su pavyzdžiais, kad galėtumėte visiškai suprasti temą.