Heim > Backend-Entwicklung > Python-Tutorial > Wie finde ich die Indizes mehrerer Maximalwerte in einem NumPy-Array?

Wie finde ich die Indizes mehrerer Maximalwerte in einem NumPy-Array?

Linda Hamilton
Freigeben: 2024-12-29 18:08:14
Original
305 Leute haben es durchsucht

How to Find the Indices of Multiple Maximum Values in a NumPy Array?

Indizes mehrerer Maximalwerte in einem NumPy-Array abrufen

NumPy-Arrays stellen die Funktion np.argmax bereit, um den Index des maximalen Elements zu lokalisieren . Wenn Sie jedoch die Indizes von N Maximalwerten benötigen, ziehen Sie die folgenden Lösungen in Betracht:

Aktuelle NumPy-Versionen:

Für NumPy-Versionen 1.8 und höher bietet die Funktion argpartition eine effiziente Methode:

import numpy as np

a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0])

# Get top 4 indices
n_max = 4
ind = np.argpartition(a, -n_max)[-n_max:]

# Retrieve top 4 values
top_max = a[ind]
Nach dem Login kopieren

Ältere NumPy Versionen:

Vor NumPy 1.8 können Sie die argsort-Funktion wie folgt verwenden:

# Get top 4 indices
n_max = 4
ind = np.argsort(a)[-n_max:]

# Retrieve top 4 values
top_max = a[ind]
Nach dem Login kopieren

Sortieren der Indizes:

Standardmäßig gibt argpartition unsortierte Indizes zurück. Wenn Sie sortierte Indizes benötigen, verwenden Sie:

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

Zeitkomplexität:

  • argpartition:O(n) im schlimmsten Fall case
  • argsort: O(n log n)
  • Kombinierter Ansatz (sortierte Indizes): O(n k log k) für top-k sortierte Elemente

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