我试着测量并绘制出电子工程中一些真空的电阻值。我用阿迪诺欧姆计来测量它的阻力。有时,数据超出了范围,数据变得有点不稳定和极端。
这里有三组数据,当每幅图返回到左边时,我想删除它的部分和右端。我真的不知道该怎么表达。应该很简单但我真的被困住了。提前感谢!
发布于 2021-04-21 00:41:57
如果您有一个参考阈值,您可以使用Numpy对数据进行天真的筛选,比如data[data < threshold]
和threshold
设置为10_000
。或者,如果希望保留这些值(因为仅删除这些值并不总是有意义),也可以使用NaN设置一些data[data < threshold] = np.nan
值。
如果您没有引用值,那么事情就会变得更加复杂。它们是有效地检测这些模式的奇特方法,但大多数都是复杂的。
最简单的解决方案是使用滑动窗口分析输入数据的标准偏差,并检测由此产生的本地标准差的异常值。您可以看到如何做那个这里 (您需要将它与类似于data[sdValues < threshold]
的东西结合起来,以删除异常值)。但是,请注意,对于接近0的值,此方法非常敏感。
另一种解决方案是计算一个高斯/中值滤波器,然后用您的输入数据(有点像在高通滤波器中)测量相对差(或另一个更高级的距离度量)。您可以看看这个职位来做这件事。
对于这两种方法,您需要定义任意的阈值。但与朴素方法不同的是,这种阈值直接关系到数据的变化,而不是原始数据本身。这取决于您找到一个关于数据变化、异常值和预期的最终输入的良好阈值。
注意:您可能对使用scipy.signal
(特别是计算过滤器)感兴趣。
https://stackoverflow.com/questions/67188427
复制相似问题