**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
4天前关闭。
Improve this question
如何在python中检测数据中的水平线?
我已经用函数scipy.signal.find_peaks()
找到了局部最小值和最大值。我可以用它来分离上升部分和下降部分。但是我需要把峰值从平坦的线中分离出来(在图中用红色圆圈标记)。
我应该用什么方法?有没有什么库可以做到这一点?
1条答案
按热度按时间2exbekwf1#
我会写一些算法来找出图中点之间的差异。
pandas.DataFrame.diff非常有用
上面一行得到每一行和下一行之间的差值
使用某个阈值,比如0.1。
检查点之间的差异是否〉阈值
如果差值〈阈值,那么继续下一个点,直到差值〉阈值(这意味着你在那条平线的末端)
继续循环遍历所有数据,直到发现所有的平线,然后对这些数据执行任何操作。
大概是这样的(可能不起作用,基本上是伪代码)
这些帖子还可能有助于:A simple algorithm to detect flat segments in noisy signals
Replace "flatline" repeated data in Pandas series with nan