利用 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 还提供用于处理最大值和最小值检测的专用函数:
使用这些方法来特定提取最大值或最小值。
示例输出
对于示例数组 [0.56660112, 0.76309473、0.69597908、0.38260156、0.24346445、0.56021785、0.24109326、0.41884061、0.35461957、0.54398472、 0.59572658, 0.92377974],局部最大值和最小值的输出索引为:
以上是如何在一维 Numpy 数组中查找局部最大值和最小值?的详细内容。更多信息请关注PHP中文网其他相关文章!