Maison >développement back-end >Tutoriel Python >Comment trouver les maxima et minima locaux dans les tableaux Numpy 1D ?

Comment trouver les maxima et minima locaux dans les tableaux Numpy 1D ?

DDD
DDDoriginal
2024-11-19 21:56:02983parcourir

How to Find Local Maxima and Minima in 1D Numpy Arrays?

Localisation des maxima et minima locaux dans des tableaux 1D avec Numpy

Identifier les maxima et minima locaux dans les tableaux numpy 1D est une tâche courante dans diverses applications . Bien que la vérification des éléments adjacents soit une approche intuitive, Numpy offre une solution plus complète et plus fiable.

Fonction argrelextrema de Numpy

Dans SciPy 0.11 et versions ultérieures, la fonction argrelextrema peut efficacement trouvez à la fois les maxima et les minima locaux dans un tableau numpy 1D. Il prend deux arguments :

  1. array : le tableau numpy d'entrée.
  2. comparator : une fonction de comparaison (par exemple, np.greater ou np.less) qui spécifie les critères d'identification des extrema .

Utilisation :

Pour trouver maxima locaux, utilisez :

argrelextrema(x, np.greater)

Pour trouver les minima locaux, utilisez :

argrelextrema(x, np.less)

Output

La fonction argrelextrema renvoie un tuple contenant un tableau unidimensionnel d'indices correspondant aux extrema. Ces indices peuvent être utilisés pour accéder aux valeurs des maxima ou minima locaux.

Exemple :

Considérons le tableau numpy suivant :

x = np.random.random(12)

Trouver les indices des maxima et minima locaux :

max_indices = argrelextrema(x, np.greater)[0]
min_indices = argrelextrema(x, np.less)[0]

Récupérer les valeurs réelles valeurs :

max_values = x[max_indices]
min_values = x[min_indices]

En utilisant la fonction argrelextrema de Numpy, vous pouvez identifier avec précision les maxima et minima locaux dans les tableaux numpy 1D, simplifiant ainsi cette tâche courante.

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