如何使用 Scipy 找到局部最小值

问题描述

我想从数组或列表中找到局部最小值。通过以下代码,我可以找到局部最大值。我知道存在相关问题,但我仍然只想知道,是否存在任何逻辑可以使用相同的代码来查找局部最小值。

代码

import matplotlib.pyplot as plt
from scipy.misc import electrocardiogram
from scipy.signal import find_peaks

x = electrocardiogram()[2000:4000]
peaks,_ = find_peaks(x,height=0)
plt.plot(x)
plt.plot(peaks,x[peaks],"x")
plt.plot(np.zeros_like(x),"--",color="gray")
plt.show()

解决方法

如何找到负信号的最大值?

import matplotlib.pyplot as plt
from scipy.misc import electrocardiogram
from scipy.signal import find_peaks
import numpy as np

x = np.array(electrocardiogram()[2000:4000])
peaks,_ = find_peaks(-x,height=0)
plt.plot(x)
plt.plot(peaks,x[peaks],"x")
plt.plot(np.zeros_like(x),"--",color="gray")
plt.show()