Obtenir l'indice de la valeur maximale dans un tableau NumPy est possible avec la fonction np.argmax. Cependant, pour récupérer les indices de plusieurs valeurs maximales, cet article explore des approches alternatives.
Les versions récentes de NumPy (à partir de la version 1.8) comportent la fonction argpartition, qui peut récupérer des indices selon une condition spécifiée. Pour obtenir les indices des n plus grands éléments, utilisez cette fonction avec un argument négatif pour n, indiquant un tri décroissant.
>>> a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0]) # Sample array >>> ind = np.argpartition(a, -4)[-4:] # Indices of top 4 largest elements
Contrairement à argsort, argpartition fonctionne linéairement dans le pire des cas, mais elle ne renvoie pas indices triés. Pour les trier, utilisez np.argsort sur le tableau partitionné :
>>> sorted_ind = ind[np.argsort(a[ind])]
Vous pouvez également tirer parti des capacités d'indexation avancées de NumPy :
>>> descending_order = np.argsort(a)[::-1] # Indices of elements in descending order >>> top_n = descending_order[:n] # Top n indices
Des solutions personnalisées existent également, telles que :
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!