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
Linda HamiltonOriginal
2024-12-29 18:08:14319Durchsuche

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]

Ä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]

Sortieren der Indizes:

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

ind[np.argsort(a[ind])]

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!

Stellungnahme:
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