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]
Dies führt zu der folgenden Ausgabe:
array([1, 5, 8, 0]) array([4, 9, 6, 9])
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])]
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!