NumPy-array sorteren | Hoe NumPy Array te sorteren
Het sorteren van een array is een zeer belangrijke stap in de gegevensanalyse, omdat het helpt bij het ordenen van gegevens en het zoeken en opschonen ervan eenvoudiger maakt.
In deze tutorial zullen we het leren hoe je een array in NumPy sorteert . U kunt een array in NumPy sorteren:
- De functie np.sort() gebruiken
- in-line sorteren
- sorteren langs verschillende assen
- De functie np.argsort() gebruiken
- De functie np.lexsort() gebruiken
Met behulp van de sort()-functie
sort() methode sorteert het element van een bepaalde datastructuur (hier array). Roep de sorteerfunctie aan met het arrayobject om de elementen te sorteren.
Er zijn twee gevallen waarin arrays worden gesorteerd met de methode sort():
- Sorteer de NumPy-array op zijn plaats
- Sorteer de NumPy-array langs assen
We behandelen beide methoden met een voorbeeld hieronder:
Sorteer array op zijn plaats
Het op zijn plaats sorteren van een array betekent dat de originele array-elementen direct worden gesorteerd.
Er wordt geen nieuwe arraykopie gemaakt en het is zeer geheugenefficiënt.
Voorbeeld
Gebruik de methode sort() om elementen in de NumPy-array op hun plaats te sorteren.
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)> |
Uitgang:
Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15]
Sorteerreeks langs verschillende assen
Met deze methode wordt een gesorteerde kopie gemaakt van de gegeven NumPy-array.
Het wordt meestal gebruikt in een multidimensionale array als u langs een bepaalde dimensie wilt sorteren.
Voorbeeld
Gebruik de methode sort() om elementen in de NumPy-array langs de as te plaatsen
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)> |
Uitgang:
Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15]
Argsort() gebruiken
argsort() methode is een indirecte manier om de NumPy-array langs een bepaalde as te sorteren.
Het retourneert een reeks indexen dat zou de originele array in oplopende volgorde sorteren.
Voorbeeld
Argsort() gebruiken om elementen in de NumPy-array te sorteren
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)> |
Uitgang:
Original array: [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] Gesorteerde array-> [1 3 3 4 6 7 9]
Volgorde van toetsen gebruiken
Door een array te sorteren met behulp van een reeks sleutels, kunnen we een array sorteren op basis van meerdere criteria.
U kunt deze methode gebruiken met de functie np.lexsort(). De functie lexsort() retourneert een array van indices die de originele array zouden sorteren.
Voorbeeld
Zorg voor een stabiele sortering met behulp van een reeks toetsen.
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)> |
Uitgang:
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]
Controleer ook: Sorteren, zoeken en tellen in NumPy
Conclusie
Door de NumPy-array te sorteren, wordt het vinden van dubbele, maximale en minimale elementen eenvoudiger. Het is een essentiële handeling bij gegevensmanipulatie, waardoor het gemakkelijker wordt om met gegevens te werken.
In deze zelfstudie hebben we drie methoden besproken voor het sorteren van een array in NumPy, dat wil zeggen sort(), argsort() en lexsort(). Al deze methoden bieden verschillende functionaliteiten om ndarray in NumPy te sorteren. We hebben de methoden in eenvoudige woorden uitgelegd met voorbeelden om u een volledig begrip van het onderwerp te geven.