Maison >développement back-end >Tutoriel Python >Comment la fonction « argrelextrema » de SciPy peut-elle être utilisée pour détecter efficacement les maxima et minima locaux dans les tableaux Numpy 1D ?

Comment la fonction « argrelextrema » de SciPy peut-elle être utilisée pour détecter efficacement les maxima et minima locaux dans les tableaux Numpy 1D ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-16 07:04:02587parcourir

How can SciPy's `argrelextrema` function be used to effectively detect local maxima and minima in 1D Numpy arrays?

Détection d'extrema locaux dans des tableaux Numpy 1D avec SciPy

La recherche de maxima et de minima locaux dans des tableaux numériques 1D est une tâche courante dans les données analyse. Bien que des approches simplistes puissent impliquer de comparer un élément à ses voisins, il est conseillé d'utiliser des algorithmes établis dans le cadre de bibliothèques de calcul scientifique populaires.

L'une de ces bibliothèques est SciPy, qui offre la fonction argrelextrema pour localiser les extrema locaux en 1D. tableaux. Cette fonction peut fonctionner à la fois avec des maxima et des minima, ce qui en fait une solution polyvalente. Voici comment l'utiliser :

import numpy as np
from scipy.signal import argrelextrema

# Example 1D array
x = np.random.random(12)

# Detect local maxima
maxima_indices = argrelextrema(x, np.greater)

# Detect local minima
minima_indices = argrelextrema(x, np.less)

La fonction argrelextrema renvoie un tuple contenant un tableau avec les indices des extrema locaux. Notez qu'il ne s'agit que des indices du tableau d'entrée, pas des valeurs réelles. Pour obtenir les valeurs correspondantes, utilisez :

maxima_values = x[maxima_indices[0]]
minima_values = x[minima_indices[0]]

Pour plus de commodité, SciPy fournit également les fonctions autonomes argrelmax et argrelmin pour rechercher séparément les maxima et les minima.

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