首页 > 后端开发 > Python教程 > 如何使用 SciPy 查找 1D Numpy 数组中的局部最大值和最小值?

如何使用 SciPy 查找 1D Numpy 数组中的局部最大值和最小值?

Linda Hamilton
发布: 2024-11-15 09:26:03
原创
182 人浏览过

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

使用 Numpy 查找一维 Numpy 数组中的局部最大值/最小值

识别一维 numpy 数组中的局部最大值和最小值是一项常见任务从事信号处理和数据分析。虽然简单的方法涉及将元素与其最近的邻居进行比较,但在 numpy/scipy 库中寻求更强大的解决方案。

使用 SciPy 的 argrelextrema 的解决方案

在 SciPy 中从版本 0.11 开始,argrelextrema 函数提供了一种在 a 中查找局部极值的有效方法一维数组:

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)
登录后复制

函数返回包含局部最大值或最小值元素索引的元组:

>>> argrelextrema(x, np.greater)
(array([1, 5, 7]),)
>>> argrelextrema(x, np.less)
(array([4, 6, 8]),)
登录后复制

要获取这些局部极值处的实际值:

>>> x[argrelextrema(x, np.greater)[0]]
登录后复制

附加功能SciPy

除了 argrelextrema 之外,SciPy 还提供专门的函数来仅查找最大值或最小值:

  • argrelmax:查找局部最大值的索引
  • argrelmin:查找局部最小值的索引

以上是如何使用 SciPy 查找 1D Numpy 数组中的局部最大值和最小值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板