首页 >后端开发 >Python教程 >如何在一维 Numpy 数组中查找局部最大值和最小值?

如何在一维 Numpy 数组中查找局部最大值和最小值?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-13 17:18:02689浏览

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

利用 Numpy 的 SciPy 模块定位一维 Numpy 数组中的局部最大值和最小值

寻求能够识别局部的 Numpy 或 SciPy 模块函数一维 Numpy 数组中的最大值和最小值,我们可以探索经过验证的Numpy 发行版中采用的解决方案。

使用 SciPy 极值检测函数的解决方案

对于 SciPy 安装版本为 0.11 或更高版本的实例,您可以利用 argrelextrema 函数:

import numpy as np
from scipy.signal import argrelextrema

x = np.random.random(12)

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

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

此脚本生成包含索引的数组局部最大值或最小值。要检索相应的值,请利用:

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

SciPy.Signal 的替代选项

SciPy.signal 还提供用于处理最大值和最小值检测的专用函数:

  • argrelmax:定位本地maxima
  • argrelmin:定位局部最小值

使用这些方法来特定提取最大值或最小值。

示例输出

对于示例数组 [0.56660112, 0.76309473、0.69597908、0.38260156、0.24346445、0.56021785、0.24109326、0.41884061、0.35461957、0.54398472、 0.59572658, 0.92377974],局部最大值和最小值的输出索引为:

  • 最大值:[1, 5, 7]
  • 最小值:[4, 6, 8]

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn