NumPy Array řazení | Jak třídit NumPy Array
Řazení pole je velmi důležitým krokem v analýze dat, protože pomáhá při řazení dat a usnadňuje vyhledávání a čištění.
V tomto tutoriálu se to naučíme jak třídit pole v NumPy . Pole můžete seřadit v NumPy:
- Použití funkce np.sort().
- in-line řazení
- řazení podle různých os
- Použití funkce np.argsort().
- Použití funkce np.lexsort().
Použití funkce sort().
Metoda sort() třídí prvek dané datové struktury (zde pole). Chcete-li prvky seřadit, zavolejte funkci sort s objektem pole.
Existují dva případy řazení pole pomocí metody sort():
- Seřaďte pole NumPy na místě
- Seřadit pole NumPy podél os
Obě tyto metody pokryjeme na příkladu níže:
Seřadit pole na místě
Řazení pole na místě znamená přímé řazení původních prvků pole.
Nevytváří novou kopii pole a je velmi efektivní z hlediska paměti.
Příklad
Použití metody sort() k řazení prvků v poli NumPy na místě.
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ýstup:
Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15]
Seřadit pole podél různých os
Tato metoda vytvoří seřazenou kopii daného pole NumPy.
Většinou se používá ve vícerozměrném poli, když chcete třídit podle dané dimenze.
Příklad
Použití metody sort() k prvkům v poli NumPy podél osy
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)> |
Výstup:
Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15]
Použití argsort()
metoda argsort(). je nepřímý způsob řazení pole NumPy podél dané osy.
Vrací to an pole indexů to by seřadilo původní pole vzestupně.
Příklad
Použití argsort() k řazení prvků v poli 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)> |
Výstup:
Original array: [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] Seřazené pole-> [1 3 3 4 6 7 9]
Použití sekvence kláves
Třídění pole pomocí sekvence klíčů nám umožňuje seřadit pole na základě více kritérií.
Tuto metodu můžete použít s funkcí np.lexsort(). Funkce lexsort() vrací pole indexů, které by seřadily původní pole.
Příklad
Získejte stabilní řazení pomocí sekvence klíčů.
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)> |
Výstup:
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]
Zkontrolujte také: Třídění, vyhledávání a počítání v NumPy
Závěr
Řazení pole NumPy usnadňuje hledání duplicitních, maximálních a minimálních prvků. Je to nezbytná operace manipulace s daty, která usnadňuje práci s daty.
V tomto tutoriálu jsme probrali tři metody, jak třídit pole v NumPy, tj. sort(), argsort() a lexsort(). Všechny tyto metody poskytují různé funkce pro řazení ndarray v NumPy. Vysvětlili jsme metody jednoduchými slovy s příklady, abyste celému tématu porozuměli.