Maison > développement back-end > Tutoriel Python > Comment trouver les maxima et minima locaux dans un tableau Numpy 1D à l'aide de SciPy ?

Comment trouver les maxima et minima locaux dans un tableau Numpy 1D à l'aide de SciPy ?

Linda Hamilton
Libérer: 2024-11-15 09:26:03
original
182 Les gens l'ont consulté

How to Find Local Maxima and Minima in a 1D Numpy Array Using SciPy?

Trouver les maxima/minima locaux dans un tableau Numpy 1D avec Numpy

Identifier les maxima et minima locaux dans un tableau numpy 1D est une tâche courante en traitement du signal et analyse de données. Alors qu'une approche simple consiste à comparer un élément avec ses voisins les plus proches, une solution plus robuste est recherchée au sein des bibliothèques numpy/scipy.

Solution utilisant l'argrelextrema de SciPy

Dans SciPy À partir des versions 0.11, la fonction argrelextrema fournit un moyen efficace de trouver les extrema locaux dans un plan 1D. array :

import numpy as np
from scipy.signal import argrelextrema

x = np.random.random(12)

# Find indices of local maxima
maxima_indices = argrelextrema(x, np.greater)

# Find indices of local minima
minima_indices = argrelextrema(x, np.less)
Copier après la connexion

La fonction renvoie des tuples contenant des indices d'éléments qui sont des maxima ou des minima locaux :

>>> argrelextrema(x, np.greater)
(array([1, 5, 7]),)
>>> argrelextrema(x, np.less)
(array([4, 6, 8]),)
Copier après la connexion

Pour obtenir les valeurs réelles à ces extrema locaux :

>>> x[argrelextrema(x, np.greater)[0]]
Copier après la connexion

Fonctions supplémentaires dans SciPy

En plus de arglextrema, SciPy fournit des fonctions spécialisées pour trouver uniquement des maxima ou des minima :

  • argrelmax : trouver les indices des maxima locaux
  • argrelmin : trouver les indices des minima locaux

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal