Elementen bestellen in numpy array (met voorbeelden)


U kunt een van de volgende methoden gebruiken om de volgorde van elementen in een NumPy-array te berekenen:

Methode 1: Gebruik argsort() van NumPy

 import numpy as np

ranks = np. array (my_array). argsort (). argsort ()

Methode 2: Gebruik SciPy’s Rankdata()

 from scipy. stats import rankdata

ranks = rankdata(my_array)

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende NumPy-array:

 import numpy as np

#define array of values
my_array = np. array ([3, 5, 2, 1, 9, 9])

#view array
print (my_array)

[3 5 2 1 9 9]

Voorbeeld 1: Elementen sorteren in NumPy-array met argsort()

De volgende code laat zien hoe u de functie argsort() van NumPy gebruikt om array-elementen te sorteren:

 #calculate rank of each item in array
ranks = np. array (my_array). argsort (). argsort ()

#view ranks
print (ranks)

[2 3 1 0 4 5]

De resultaten tonen de rangorde van elk element in de oorspronkelijke array, waarbij 0 de laagste waarde vertegenwoordigt.

Het voordeel van deze aanpak is dat u geen extra modules hoeft te laden, maar het nadeel is dat argsort() slechts één methode heeft voor het verwerken van links.

Standaard gebruikt argsort() een ordinale methode om links af te handelen, wat betekent dat de gekoppelde waarde die als eerste verschijnt automatisch de lagere rang krijgt.

Voorbeeld 2: Elementen in NumPy-array rangschikken met behulp van Rankdata()

De volgende code laat zien hoe u de functie Rankdata() van SciPy gebruikt om array-elementen te rangschikken:

 from scipy. stats import rankdata

#calculate rank of each item in array
ranks = rankdata(my_array)

#view ranks
print (ranks)

array([3. , 4. , 2. , 1. , 5.5, 5.5])

De resultaten tonen de rangorde van elk element in de oorspronkelijke array, waarbij 1 de kleinste waarde vertegenwoordigt.

Als u wilt dat 0 de kleinste waarde vertegenwoordigt, trekt u eenvoudigweg 1 van elke waarde af:

 from scipy. stats import rankdata

#calculate rank of each item in array
ranks = rankdata(my_array) - 1

#view ranks
print (ranks)

[2. 3. 1. 0. 4.5 4.5]

Standaard wijst de functie Rankdata() gemiddelde rangen toe aan alle waarden met banden.

U kunt het methodeargument echter gebruiken om koppelingen op een andere manier af te handelen.

De volgende code laat bijvoorbeeld zien hoe u ordinaal gebruikt als koppelingsbeheermethode:

 from scipy. stats import rankdata

#calculate rank of each item in array
ranks = rankdata(my_array, method=' ordinal ') - 1

#view ranks
print (ranks)

[2 3 1 0 4 5]

Dit levert dezelfde resultaten op als de methode argsort() van NumPy.

Andere methoden voor linkbeheer zijn onder meer min , max en density .

Lees meer over elke methode in de SciPy-documentatie .

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in NumPy kunt uitvoeren:

Hoe dubbele elementen uit de NumPy-array te verwijderen
Hoe een NumPy-array van floats naar gehele getallen te converteren
Hoe een NumPy-matrix naar een array te converteren

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert