在 python 中使用 FindPeaks 后如何从信号中提取最大值和最小值
How do I pull the maximum and minimum values from a signal after using FindPeaks in python
使用下面的示例,如何将标记为 'Top' 和 'Bottom' 的最大值和最小值提取到单独的数组中?
# Load library
import numpy as np
from findpeaks import findpeaks
# Data
i = 10000
xs = np.linspace(0,3.7*np.pi,i)
X = (0.3*np.sin(xs) + np.sin(1.3 * xs) + 0.9 * np.sin(4.2 * xs) + 0.06 * np.random.randn(i))
# Initialize
fp = findpeaks(method='peakdetect')
results = fp.fit(X)
# Plot
fp.plot1d()
我假设您使用的是 findpeaks library 2.4.0。 results
变量已包含 min
和 max
值。您可以通过以下方式获取:
df_interp = results["df"]
min_peaks = df_interp["x"].loc[df_interp["valley"]].values
max_peaks = df_interp["x"].loc[df_interp["peak"]].values
print("min", min_peaks)
print("max", max_peaks)
使用下面的示例,如何将标记为 'Top' 和 'Bottom' 的最大值和最小值提取到单独的数组中?
# Load library
import numpy as np
from findpeaks import findpeaks
# Data
i = 10000
xs = np.linspace(0,3.7*np.pi,i)
X = (0.3*np.sin(xs) + np.sin(1.3 * xs) + 0.9 * np.sin(4.2 * xs) + 0.06 * np.random.randn(i))
# Initialize
fp = findpeaks(method='peakdetect')
results = fp.fit(X)
# Plot
fp.plot1d()
我假设您使用的是 findpeaks library 2.4.0。 results
变量已包含 min
和 max
值。您可以通过以下方式获取:
df_interp = results["df"]
min_peaks = df_interp["x"].loc[df_interp["valley"]].values
max_peaks = df_interp["x"].loc[df_interp["peak"]].values
print("min", min_peaks)
print("max", max_peaks)