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

Wak*_*han 2 python 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()
Run Code Online (Sandbox Code Playgroud)

car*_*rop 6

找到负信号的最大值怎么样?

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()
Run Code Online (Sandbox Code Playgroud)

  • @WakilKhan 要查找 [4, 5, 6, 7, 6, 5, 4, 3, 4, 5, 6, 7, 6 ] 的最小值,您应该将 `find_peaks(-x, height=0)` 更改为`find_peaks(-x)`。如果进行此更改,代码就可以工作。 (4认同)