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

DDD
Freigeben: 2024-10-27 04:35:30
Original
863 Leute haben es durchsucht

How to Efficiently Rank Elements in a NumPy Array Without Double Sorting?

Effizientes Array-Ranking in Python/NumPy ohne doppelte Sortierung

Bei der Datenanalyse und beim maschinellen Lernen ist das Ranking von Elementen innerhalb eines Arrays eine übliche Operation . Allerdings ist es ineffizient, das Array dazu zweimal zu sortieren, da es die Rechenkomplexität erhöht. Hier ist ein optimalerer Ansatz mit NumPy:

Um Elemente in einem Array ohne zweimaliges Umsortieren zu ordnen, befolgen Sie diese Schritte:

  1. Wenden Sie argsort einmal an, um die Reihenfolge der Array-Elemente zu erhalten.
  2. Verwenden Sie argsort erneut, um die in Schritt 1 erhaltene Reihenfolge zu ordnen.

Zum Beispiel:

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

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

order = array.argsort()
ranks = order.argsort()

print("Original Array:", array)
print("Ordering:", order)
print("Ranks:", ranks)</code>
Nach dem Login kopieren

Ausgabe:

Original Array: [4 2 7 1]
Ordering: [3 1 2 0]
Ranks: [2 1 3 0]
Nach dem Login kopieren

As Wie Sie sehen, liefert das Ranks-Array die Rangfolge für jedes Element im ursprünglichen Array, ohne dass eine doppelte Sortierung erforderlich ist.

Beachten Sie, dass es bei 2D- oder höherdimensionalen Arrays entscheidend ist, die richtige Achse für die Sortierung anzugeben Bereitstellung eines Achsenarguments für argsort.

Das obige ist der detaillierte Inhalt vonWie ordne ich Elemente in einem NumPy-Array 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
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!