Rangwerte in NumPy Array

Muhammad Maisam Abbas 30 Januar 2023
  1. NumPy Rank Mit der Methode numpy.argsort()
  2. NumPy Rank mit der Funktion scipy.stats.rankdata() in Python
Rangwerte in NumPy Array

In diesem Tutorial werden die Methoden zum Einstufen von Daten in einem Python NumPy-Array vorgestellt.

NumPy Rank Mit der Methode numpy.argsort()

Die Methode numpy.argsort() wird verwendet, um die Indizes zu erhalten, die zum Sortieren eines NumPy-Arrays verwendet werden können. Diese Indizes können auch als Ränge für jedes Element innerhalb des Arrays verwendet werden. Die Methode numpy.argsort() wird vom Array aufgerufen und gibt den Rang jedes Elements innerhalb des Arrays in Form eines anderen Arrays zurück.

import numpy as np

array = np.array([1, 8, 5, 7, 9])

temp = array.argsort()

ranks = np.empty_like(temp)

ranks[temp] = np.arange(len(array))
print(array)
print(ranks)

Ausgabe:

[1 8 5 7 9]
[0 3 1 2 4]

Wir haben die Elemente innerhalb des NumPy-Arrays array mit der Funktion numpy.argsort() im obigen Code geordnet. Wir haben unser Array zuerst mit der Funktion np.array() erstellt. Wir haben dann die Funktion array.argsort() verwendet und die Werte im Array temp gespeichert. Danach haben wir ein weiteres Array erstellt, ranks, das den Rang jedes Elements im array enthält. Dann haben wir den Rang jedes Elements innerhalb des array jedem Element der ranks mit ranks[temp] = np.arange(len(array)) zugewiesen.

Die im oben erwähnten Codierungsbeispiel besprochene Methode funktioniert gut, aber wir können unseren Code mit der Funktion numpy.argsort() zweimal weiter vereinfachen. Dieses Phänomen wird im folgenden Codierungsbeispiel demonstriert.

import numpy as np

array = np.array([1, 8, 5, 7, 9])

temp = array.argsort()

ranks = temp.argsort()
print(array)
print(ranks)

Ausgabe:

[1 8 5 7 9]
[0 3 1 2 4]

Wir haben ein weiteres Array ranks erstellt und jedem Element der ranks mit ranks = temp.argsort() den Rang jedes Elements innerhalb des arrays zugewiesen.

NumPy Rank mit der Funktion scipy.stats.rankdata() in Python

Wir können auch die rankdata()-Funktion in der scipy.stats-Bibliothek verwenden, um den Rang jedes Elements in unserem NumPy-Array zu ermitteln. Die Funktion rankdata() nimmt das Array als Eingabeparameter, stuft jedes Element innerhalb des Arrays ein und gibt das Ergebnis in Form eines anderen Arrays derselben Länge zurück.

from scipy.stats import rankdata
import numpy as np

array = np.array([1, 8, 5, 7, 9])

ranks = rankdata(array)
print(array)
print(ranks)

Ausgabe:

[1 8 5 7 9]
[1. 4. 2. 3. 5.]

Wir haben unser Array zuerst mit der Funktion np.array() erstellt. Wir haben dann die Funktion rankdata(array) verwendet und die Werte im Array ranks gespeichert.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn