我试图使用scipy找到函数的峰值,但是我希望它也能检测到边界处的峰值。下面是一个此类案例的快照。正如我们看到的,该方法已检测到10个峰值,但我希望总峰值为12个,包括边界处的峰值。有什么办法吗?另外,我不想像那样包括开始索引和结束索引。我将在一个大数据集上运行这个方法,以便寻找一个通用的解决方案
coordinates = df.loc[:, columns].sum(axis=1)
peaks_max_y = argrelextrema(coordinates.to_numpy(), np.greater)[0]
index = np.arange(df.shape[0])
_ = plt.plot(index, coordinates, 'b-', linewidth = 2)
_ = plt.plot(index[peaks_max_y], coordinates[peaks_max_y], 'ro', label = 'minima peaks')
plt.title(pid)
既然
find_peaks
将处理其余的点,那么只检查端点处的斜率如何?如果左侧的坡度为负值,则起点处有一个峰值。类似地,如果最后是正值,则有一个峰值大概是这样的:
相关问题 更多 >
编程相关推荐