【问题标题】:Storing raw and processed data for efficient use in matplotlib存储原始和处理过的数据以便在 matplotlib 中有效使用
【发布时间】:2011-02-10 21:52:51
【问题描述】:

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

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

【问题讨论】:

    标签: python storage


    【解决方案1】:

    查看pytables,它是 HDF5 库的包装器。它就是为这类事情而设计的。

    【讨论】:

    • 这些屏幕截图看起来类似于 matplotlib 表。 pytables 是否重用了该功能?
    • 他们使用 matplotlib 来绘制这些测试结果。它不是 pytables 本身的一部分。
    【解决方案2】:

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

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 2011-08-19
      • 2020-11-03
      相关资源
      最近更新 更多