Wie ordne ich Array-Elemente in Python/NumPy effizient ohne doppelte Sortierung?

Susan Sarandon
Freigeben: 2024-10-28 21:29:30
Original
832 Leute haben es durchsucht

How to Rank Array Items in Python/NumPy Efficiently Without Double Sorting?

Schnelleres Ranking von Array-Elementen in Python/NumPy ohne doppelte Sortierung

Bei der Datenanalyse und beim maschinellen Lernen ist es oft notwendig, Elemente in einem zu ordnen Array basierend auf ihren Werten. Das doppelte Sortieren des Arrays für die Rangfolge kann zeitaufwändig sein.

Erster Ansatz

Eine gängige Methode wird unten beispielhaft dargestellt:

<code class="python">import numpy as np

# Sample array
array = np.array([4, 2, 7, 1])

# Temporary array for sorting
temp = array.argsort()

# Rank computation
ranks = np.arange(len(array))[temp.argsort()]</code>
Nach dem Login kopieren

Dieser Ansatz beinhaltet zwei Sortiervorgänge, was die Komplexität erhöht.

Optimierte Lösung

Um eine doppelte Sortierung zu vermeiden, können wir die argsort()-Funktion von NumPy zweimal nutzen:

<code class="python">array = np.array([4, 2, 7, 1])

# First argsort to obtain element order
order = array.argsort()

# Second argsort to obtain ranking
ranks = order.argsort()</code>
Nach dem Login kopieren

Erklärung

Zuerst verwenden wir argsort(), um die Reihenfolge der Array-Elemente zu ermitteln. Dann wenden wir argsort() erneut auf die resultierende Reihenfolge an, wodurch wir die Rangfolge erhalten.

Fazit

Diese optimierte Technik verbessert die Geschwindigkeit der Rangfolge von Array-Elementen erheblich unnötiges Sortieren vermeiden. Verwenden Sie für hochdimensionale Arrays das Achsenargument in argsort, um die Achse für die Sortierung anzugeben.

Das obige ist der detaillierte Inhalt vonWie ordne ich Array-Elemente in Python/NumPy effizient ohne doppelte Sortierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!