scipy.stats.

rankdata#

scipy.stats.rankdata(a, method='average', *, axis=None, nan_policy='propagate')[Quellcode anzeigen]#

Weist Daten Ränge zu und behandelt Gleichstände angemessen.

Standardmäßig (axis=None) wird das Datenarray zuerst abgeflacht und ein flaches Array von Rängen zurückgegeben. Formen Sie das Rang-Array bei Bedarf separat in die Form des Datenarrays um (siehe Beispiele).

Ränge beginnen bei 1. Das Argument method steuert, wie Ränge für gleiche Werte zugewiesen werden. Weitere Informationen zu Ranking-Methoden finden Sie unter [1].

Parameter:
aarray_like

Das Array von Werten, die gerankt werden sollen.

method{‘average’, ‘min’, ‘max’, ‘dense’, ‘ordinal’}, optional

Die Methode, die zur Zuweisung von Rängen an gleichrangige Elemente verwendet wird. Folgende Methoden sind verfügbar (Standard ist ‘average’)

  • ‘average’: Der Durchschnitt der Ränge, die allen gleichrangigen Werten zugewiesen worden wären, wird jedem Wert zugewiesen.

  • ‘min’: Das Minimum der Ränge, die allen gleichrangigen Werten zugewiesen worden wären, wird jedem Wert zugewiesen. (Dies wird auch als „Wettbewerbsranking“ bezeichnet.)

  • ‘max’: Das Maximum der Ränge, die allen gleichrangigen Werten zugewiesen worden wären, wird jedem Wert zugewiesen.

  • ‘dense’: Ähnlich wie ‘min’, aber dem Rang des nächsthöheren Elements wird der Rang zugewiesen, der unmittelbar auf die Ränge folgt, die den gleichrangigen Elementen zugewiesen wurden.

  • ‘ordinal’: Allen Werten wird ein eindeutiger Rang zugewiesen, der der Reihenfolge entspricht, in der die Werte in a auftreten.

axis{None, int}, optional

Achse, entlang der das Ranking durchgeführt werden soll. Wenn None, wird das Datenarray zuerst abgeflacht.

nan_policy{‘propagate’, ‘omit’, ‘raise’}, optional

Definiert, wie mit NaN-Werten im Input umgegangen wird. Die folgenden Optionen sind verfügbar (Standard ist ‘propagate’)

  • ‘propagate’: propagiert NaNs durch die Rangberechnung

  • ‘omit’: führt die Berechnungen unter Ignorierung von NaN-Werten durch

  • ‘raise’: löst einen Fehler aus

Hinweis

Wenn nan_policy ‘propagate’ ist, ist die Ausgabe ein Array aus *allen* NaNs, da Ränge relativ zu NaNs im Eingabearray undefiniert sind. Wenn nan_policy ‘omit’ ist, werden NaNs in a beim Rangen der anderen Werte ignoriert, und die entsprechenden Positionen der Ausgabe sind NaN.

Hinzugefügt in Version 1.10.

Rückgabe:
ranksndarray

Ein Array der Größe gleich der Größe von a, das Rangwerte enthält.

Hinweise

rankdata unterstützt experimentell Python Array API Standard-kompatible Backends zusätzlich zu NumPy. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie eine Umgebungsvariable SCIPY_ARRAY_API=1 setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente bereitstellen. Folgende Kombinationen aus Backend und Gerät (oder anderer Fähigkeit) werden unterstützt.

Bibliothek

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

⚠️ kein JIT

⚠️ kein JIT

Dask

n/a

Siehe Unterstützung für den Array API Standard für weitere Informationen.

Referenzen

Beispiele

>>> import numpy as np
>>> from scipy.stats import rankdata
>>> rankdata([0, 2, 3, 2])
array([ 1. ,  2.5,  4. ,  2.5])
>>> rankdata([0, 2, 3, 2], method='min')
array([ 1,  2,  4,  2])
>>> rankdata([0, 2, 3, 2], method='max')
array([ 1,  3,  4,  3])
>>> rankdata([0, 2, 3, 2], method='dense')
array([ 1,  2,  3,  2])
>>> rankdata([0, 2, 3, 2], method='ordinal')
array([ 1,  2,  4,  3])
>>> rankdata([[0, 2], [3, 2]]).reshape(2,2)
array([[1. , 2.5],
      [4. , 2.5]])
>>> rankdata([[0, 2, 2], [3, 2, 5]], axis=1)
array([[1. , 2.5, 2.5],
       [2. , 1. , 3. ]])
>>> rankdata([0, 2, 3, np.nan, -2, np.nan], nan_policy="propagate")
array([nan, nan, nan, nan, nan, nan])
>>> rankdata([0, 2, 3, np.nan, -2, np.nan], nan_policy="omit")
array([ 2.,  3.,  4., nan,  1., nan])