使用python扫描一个大型数据文件

时间:2016-04-19 17:25:55

标签: python-2.7 matplotlib plot

我有一个16位整数数据的大(10-100GB)数据文件,它代表数据采集设备的时间序列。我想编写一段扫描它的python代码,绘制一个数秒的移动窗口。理想情况下,我希望这是尽可能连续的。

数据以4MHz采样,因此绘制几秒钟的数据涉及在图表上绘制约1000万个数据点。不幸的是,由于我想看到的功能在文件中很稀疏,所以我无法真正缩减采样。

matplotlib实际上并不是为此而设计的。这在技术上是可行的,我有一个半工作的matplotlib解决方案,它允许我绘制任何特定的时间窗口,但是对连续扫描增量变化的数据来说太慢而且麻烦 - 重绘图形需要几秒钟,这是太久了。

有人建议使用python包或方法吗?

2 个答案:

答案 0 :(得分:0)

PyQtGraph比Matplotlib快,但我不知道它是否可以每秒绘制1000万点。它还包括多种方法来对您的数据进行下采样,因此其中一种方法可能对您仍然有用。请注意,它需要Qt和PyQt。

但是,您还有5e9和5e10之间的数据样本。如果你可以同时绘图 其中1000万,这仍然意味着制作500至5000个地块。你真的要在视觉上检查它们吗?您可能会考虑实现某种特征检测。

答案 1 :(得分:0)

在类似的问题(时间变化的热图)中对我有用的东西是运行批量作业,在夜间生成数千个这样的图,将每个图保存为单独的图像。在10s的数字,你可以在10h内产生3600。然后,您可以直接扫描图像,这些图像可以为您提供您正在寻找的洞察力。