存储原始数据和已处理数据,以便在matplotlib中有效使用

时间:2011-02-10 21:52:51

标签: python storage

我有一些大型数据集(数字和文本),当我正在研究并使用python和numpy / matplotlib进行可视化时,我遇到了一个问题:我加载原始数据,应用计算,然后创建图形在matplotlib中。这一切都在一个程序中,因此每次我想调整图形图例或者使我的图形更具视觉吸引力时,我会冗余且低效地计算相同的数据。我只使用我的数据集的一小部分样本,脚本一次运行30分钟!

我知道解决方案是运行计算并存储输出以便在单独的程序中使用;然后使用不同的程序生成实际的图形。我的问题是我不知道如何最好地在程序之间存储处理过的数据。我应该制作.csv文件,还是有一些合适的结构可以自动以(可能)以人类可读的格式存储数据?

2 个答案:

答案 0 :(得分:3)

查看pytables,HDF5图书馆的包装。它是为那种东西而设计的。

答案 1 :(得分:1)

我只会腌制它们。这非常简单,通常足够快(如果你使用更新的二进制协议),在空间上也相当有效。确保使用最高可用协议:

import cPickle
with open("results.dat", "wb") as stream:
    cPickle.dump(data, stream, cPickle.HIGHEST_PROTOCOL)
...
with open("results.dat", "rb") as stream:
    data = cPickle.load(stream)