Maison >développement back-end >Tutoriel Python >Comment trouver les indices de plusieurs valeurs maximales dans un tableau NumPy ?

Comment trouver les indices de plusieurs valeurs maximales dans un tableau NumPy ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-29 18:08:14319parcourir

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

Récupération d'indices de plusieurs valeurs maximales dans un tableau NumPy

Les tableaux NumPy fournissent la fonction np.argmax pour localiser l'index de l'élément maximum . Cependant, si vous avez besoin des indices de N valeurs maximales, envisagez les solutions suivantes :

Versions récentes de NumPy :

Pour les versions NumPy 1.8 et supérieures, la fonction argpartition propose une méthode efficace :

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]

NumPy plus ancien Versions :

Avant NumPy 1.8, vous pouvez utiliser la fonction argsort comme suit :

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

# Retrieve top 4 values
top_max = a[ind]

Tri des index :

Par défaut, argpartition renvoie des index non triés. Si vous avez besoin d'index triés, utilisez :

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

Complexité temporelle :

  • argpartition : O(n) dans le pire des cas case
  • argsort : O(n log n)
  • Approche combinée (indices triés) : O(n k log k) pour les éléments triés top-k

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn