gpt4 book ai didi

python - 在 1D numpy 数组中使用 Numpy 查找局部最大值/最小值

转载 作者:IT老高 更新时间:2023-10-28 21:07:14 39 4
gpt4 key购买 nike

你能推荐一个来自 numpy/scipy 的模块函数,它可以在一维 numpy 数组中找到局部最大值/最小值吗?显然,最简单的方法是查看最近的邻居,但我希望有一个可以接受的解决方案,它是 numpy 发行版的一部分。

最佳答案

在 SciPy 中 >= 0.11

import numpy as np
from scipy.signal import argrelextrema

x = np.random.random(12)

# for local maxima
argrelextrema(x, np.greater)

# for local minima
argrelextrema(x, np.less)

生产

>>> x
array([ 0.56660112, 0.76309473, 0.69597908, 0.38260156, 0.24346445,
0.56021785, 0.24109326, 0.41884061, 0.35461957, 0.54398472,
0.59572658, 0.92377974])
>>> argrelextrema(x, np.greater)
(array([1, 5, 7]),)
>>> argrelextrema(x, np.less)
(array([4, 6, 8]),)

注意,这些是 x 的索引,它们是局部最大值/最小值。要获取值,请尝试:

>>> x[argrelextrema(x, np.greater)[0]]

scipy.signal 还提供了 argrelmaxargrelmin 分别用于查找最大值和最小值。

关于python - 在 1D numpy 数组中使用 Numpy 查找局部最大值/最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4624970/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com