gpt4 book ai didi

python - 如何过滤一个 Numpy 数组,使每个 X 值只有一个 Y 值

转载 作者:行者123 更新时间:2023-12-04 03:34:27 25 4
gpt4 key购买 nike

我正在尝试为一个电子项目测量和绘制一些 vactrols 的电阻。我使用 Arduino 欧姆表来测量它的电阻。有时数据会超出范围,数据会变得有点不稳定和极端。

这里有三组数据,我想去掉每组图向左走时的部分和右端。我真的不知道还能怎么表达。应该很简单,但我真的很困惑。提前致谢!

vactrol curves

最佳答案

如果您有一个引用阈值,您可以使用类似 data[data < threshold] 的 Numpy 天真地过滤数据与 threshold例如设置为 10_000 .或者,如果您想保留这些值(因为删除它们可能并不总是有意义),您也可以使用 data[data < threshold] = np.nan 放置一些 NaN 值。 .

如果没有引用值(value),那么事情就有点复杂了。它们是有效检测此类模式的奇特方法,但大多数都很复杂。

最简单的解决方案是使用滑动窗口分析输入数据的标准差,并检测与生成的局部标准差相关的异常值。你可以看到如何做到这一点 here (您需要将其与 data[sdValues < threshold] 之类的内容结合使用以删除异常值)。但请注意,此方法对接近 0 的值非常敏感。

另一种解决方案是计算高斯/中值滤波器,然后用您的输入数据(有点像 high-pass filter )测量相对差异(或另一个更高级的距离度量)。你可以看看this post这样做。

对于这两种方法,您需要定义一个任意阈值。但与朴素的方法不同,这个阈值与数据变化直接相关,而不是原始数据本身。您可以根据数据变化、异常值和预期的最终输入找到一个好的阈值。

注意:您可能对使用 scipy.signal 感兴趣(特别是计算过滤器)。

关于python - 如何过滤一个 Numpy 数组,使每个 X 值只有一个 Y 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67188427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com