[Python] Ermittelt den Rang der Werte in der Liste in aufsteigender / absteigender Reihenfolge

Artikelinhalt

Ich möchte den Rang der Python-Listenwerte in aufsteigender / absteigender Reihenfolge erhalten. Ich fand die aufsteigende Reihenfolge, sobald ich sie nachgeschlagen hatte, aber ich ließ sie als Notiz, weil die absteigende Reihenfolge etwas Einfallsreichtum erforderte.

Code

Es ist sofort ein Code.

from scipy.stats import rankdata

# Zieldaten
array = [10,30,30,40,20]

# Holen Sie sich den Rang für jeden Index mit Rangdaten
asc = rankdata(array)

# Anzeige in aufsteigender Reihenfolge
print(type(asc))
print(asc.astype(float))

# Absteigende Berechnung
desc = (len(asc) - asc + 1).astype(float)

# Anzeige in absteigender Reihenfolge
print(type(desc))
print(desc)

Es scheint, dass der Prozess des Erfassens in absteigender Reihenfolge nicht in Rangdaten implementiert ist, daher war es notwendig, die absteigende Reihenfolge zu berechnen. Durch das Ausprobieren verschiedener Dinge denke ich, dass dies am einfachsten zu sein scheint.

Unten sind die Ausführungsergebnisse.

<class 'numpy.ndarray'>
[1. 3. 5. 4. 2.]
<class 'numpy.ndarray'>
[5. 3. 1. 2. 4.]

Wenn Sie Astype in Astype ändern (int)

<class 'numpy.ndarray'>
[1 3 5 4 2]
<class 'numpy.ndarray'>
[5 3 1 2 4]

Es wird so sein.

Wenn in diesem Zustand der gleiche Wert eingegeben wird ...

# Zieldaten
array = [10,30,30,40,20]
<class 'numpy.ndarray'>
[1 3 3 5 2]
<class 'numpy.ndarray'>
[5 2 2 1 4]

Es wird so sein. Das Ergebnis hat sich geändert. Wenn es schwimmt bleibt

<class 'numpy.ndarray'>
[1.  3.5 3.5 5.  2. ]
<class 'numpy.ndarray'>
[5.  2.5 2.5 1.  4. ]

Es wird so sein.

Wenn die Daten nicht abgedeckt sind, handelt es sich um eine eingeschränkte Methode.

Nachtrag

Die von Konandoirusa aufgezeigte Methode ist überwältigend einfacher, deshalb habe ich sie hinzugefügt.

import numpy as np
from scipy.stats import rankdata
# Zieldaten
array = [10,30,30,40,20]

# aufsteigende Reihenfolge
print(rankdata(np.array(array)))
# absteigende Reihenfolge
print(rankdata(-np.array(array)))

Ausführungsergebnis

[1.  3.5 3.5 5.  2. ]
[5.  2.5 2.5 1.  4. ]

Recommended Posts

[Python] Ermittelt den Rang der Werte in der Liste in aufsteigender / absteigender Reihenfolge
Sortieren Sie die Liste der Tupel in Python, indem Sie die aufsteigende / absteigende Reihenfolge mehrerer Schlüssel angeben
[Python] Ruft die Liste der im Modul definierten Klassen ab
[Python] So geben Sie Listenwerte der Reihe nach aus
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Ruft die EDINET-Codeliste in Python ab
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Holen Sie sich den Aufrufer einer Funktion in Python
Kopieren Sie die Liste in Python
So ermitteln Sie die Anzahl der Stellen in Python
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
[Python] Ruft die Liste der ExifTags-Namen der Pillow-Bibliothek ab
[Python] Gibt alle Kombinationen von Elementen in der Liste aus
Rufen Sie die URL des HTTP-Umleitungsziels in Python ab
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Versuchen Sie, die Funktionsliste des Python> os-Pakets abzurufen
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
Ruft den Index des n-ten größten / kleinsten Werts in der Liste in Python ab
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
Ermitteln Sie die Anzahl der Vorkommen für jedes Element in der Liste
Ruft den Index jedes Elements der Verwirrungsmatrix in Python ab
Ruft den Index des n-ten größten / kleinsten Werts in der Liste in Python ab
Holen Sie sich den Desktop-Pfad in Python
Holen Sie sich den Skriptpfad in Python
Holen Sie sich den Desktop-Pfad in Python
Holen Sie sich den Hostnamen in Python
Informationen zur Grundlagenliste der Python-Grundlagen
Ruft den Wert eines bestimmten Schlüssels bis zum angegebenen Index der Wörterbuchliste in Python ab
Versuchen Sie, die Thread-Liste der Nachrichten (Abneigung) mit Python zu erhalten.
Python> 3 Brüche im Format ".3f, .3f, .3f" anzeigen / 3 Koordinatenwerte im Bereich [-1: 1] abrufen
Ruft eine Liste der Dateien in einem Ordner mit Python ohne Pfad ab
Holen Sie sich den Titel und das Lieferdatum von Yahoo! News in Python
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python
Überprüfen Sie das Verhalten des Zerstörers in Python
Holen Sie sich die besten n-ten Werte in Pandas
Fügen Sie aufeinanderfolgende Werte in der Liste zusammen
Zeigen Sie eine Liste der Alphabete in Python 3 an
Holen Sie sich die Spaltenliste und Datenliste von CASTable
[Python] Ruft eine Liste der Instanzvariablen ab
Grundlagen zum Ausführen von NoxPlayer in Python
Zusammenfassung der integrierten Methoden usw. der Python-Liste
scipy.sparse.linalg.svds gibt einzelne Werte in aufsteigender Reihenfolge zurück
Auf der Suche nach dem schnellsten FizzBuzz in Python
[Python] Ruft den Zeichencode der Datei ab
[Python] Nur eine Liste der Ordner abrufen
Entfernen Sie DICOM-Bilder in Python
Python VBA, um mit Selenium die gesamte WEB-Seite zu erfassen
Rufen Sie mit Python eine Liste der in der aktuellen Umgebung installierten Pakete ab
Klicken Sie auf die Selenium-Links, um die Elemente der einzelnen Seiten abzurufen
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
Holen Sie sich zu jeder Tageszeit eine Datums- / Uhrzeitinstanz in Python
Holen Sie sich den Schlüssel für die Migration von JSON-Daten auf der zweiten Ebene mit Python
Holen Sie sich den Inhalt von Git Diff aus Python
Geben Sie die Anzahl der CPU-Kerne in Python aus
[Python] Checklistenelemente alle, alle
Holen Sie sich das Wetter in Osaka über Web-API (Python)
[Python] Ruft die Skalenbezeichnung der Figur ab / bearbeitet sie
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
Holen Sie sich nur Unterklassenelemente in eine Liste