有效地移除校准辊并用NaN的更换

2024-04-25 22:51:02 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个表示磁场数据的图像,在y=0轴附近,数据会发生变化。enter image description here

然而,也有一些明显的现象,在这些现象中,不同的数据转换成很容易突出的振荡。超过101个点的这些大且一致的峰值(这对于所有峰值都是一致的)称为校准辊。我把数据通过一个统计例行程序,以删除任何统计异常值和这些非物理校准辊没有删除。你知道吗

这是从图像1放大的校准辊之一。enter image description here

不幸的是,这些振荡的最大值和最小值并不一致,这意味着它们在某个特定的值上变化。另外,我们可以看到,这不是一个简短的数据集,因为我主要关注的点的数量延伸到大约5000万个数据点。除了手动绘制所有这些,并通过每个校准辊记录每个校准辊的开始和结束,以手动取出这些校准辊外,是否有任何方法可以通过一个例程高效地运行整个数据集,该例程快速遍历数据,发现校准辊的这些出现,并用NaN替换该数据?我使用的数据结构是熊猫SeriesDataFrames。你知道吗

以下是我正在做的清理工作:

运行一个101点大小的窗口,从零开始,逐点滑动。对于窗口的每一张幻灯片,我让它计算平均值,如果平均值低于某个好数据或好数据和坏数据的混合都无法创建的值(只有校准辊可以生成),那么它将用NaN替换该窗口中的值并继续。你知道吗

我意识到这可能会带走一些好的数据,这并不理想;但是,我想看看是否有人会有一个更好的过程,或者遇到类似的问题,并有一个有效的方法来克服它。你知道吗

编辑:

实际上,我意识到,除了没有显示出rolls的独特特性之外,我正在实现的代码也非常低效。我有一个代码,它现在可以工作,而且运行得比较快,当它在整个时间序列中运行一次时,它会将value holder与之前和之后的值holder进行比较,从而创建一个7点模具。我的比较语句是非常复杂的,但是,它被设计成只需两步if语句就可以快速完成。用于去除转鼓的独特特征是,数值在y轴上以数据点的独特排列进行镜像,也就是说,每2个点为正值,接下来的2个点在前2个值的负值附近,中间点位于下一组4个数据点之间。你知道吗

如果我之前没说的话,数据是关于等离子体材料中磁场的变化,它可以在正负值之间波动,当然,但这会给我的移除程序带来一个小问题,但从长远来看,这肯定不会影响我的目标。你知道吗


Tags: 数据方法代码图像手动语句nan例程