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