Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich die Indizes der Top-N-Maximalwerte in einem NumPy-Array finden?

Wie kann ich die Indizes der Top-N-Maximalwerte in einem NumPy-Array finden?

Susan Sarandon
Freigeben: 2024-12-06 01:38:11
Original
876 Leute haben es durchsucht

How Can I Find the Indices of the Top N Maximum Values in a NumPy Array?

Mehrere Maximalwerte mit NumPy finden

NumPy-Arrays bieten verschiedene Funktionen für statistische Operationen, einschließlich der Suche nach dem einzelnen Maximalwert mit np.argmax. Für Szenarien, in denen es notwendig ist, die obersten N-Maximalwerte zu identifizieren, gibt es jedoch eine bestimmte Anforderung, die np.argmax nicht erfüllen kann.

Lösung: Verwendung von np.argpartition in neueren NumPy-Versionen

Ab NumPy-Versionen 1.8 und höher bietet die Funktion np.argpartition hierfür eine Lösung Problem. Durch die Verwendung dieser Funktion können Sie die Indizes der N größten Elemente erhalten.

Betrachten Sie beispielsweise ein Array [1, 3, 2, 4, 5]. So rufen Sie die Indizes der vier größten Elemente ab:

import numpy as np

a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0])
ind = np.argpartition(a, -4)[-4:]
top_four = a[ind]    
Nach dem Login kopieren

Dies führt zu der folgenden Ausgabe:

array([1, 5, 8, 0])
array([4, 9, 6, 9])
Nach dem Login kopieren

wobei „ind“ die Indizes der vier größten Elemente darstellt, und 'top_four' sind die entsprechenden Werte.

Sortieren der Indizes nach Geordnet Ausgabe

Bei Bedarf können Sie die Indizes weiter sortieren, indem Sie np.argsort für die entsprechenden Array-Elemente aufrufen:

sorted_ind = ind[np.argsort(a[ind])]
Nach dem Login kopieren

Dadurch wird sichergestellt, dass die Top-k-Elemente erhalten werden sortierte Reihenfolge, mit einer zeitlichen Komplexität von O(n k log k).

Das obige ist der detaillierte Inhalt vonWie kann ich die Indizes der Top-N-Maximalwerte in einem NumPy-Array finden?. 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