我正在开发一个项目,我有大量的输入文件来自pdes的数值解决方案.数据格式如下.
x \t y \t f(x,y)
Run Code Online (Sandbox Code Playgroud)
对于y的每个值,我们有几个x值,并在每个点评估函数值.我正在处理的数据大小是每个维度的[-3, 5]x[-3, 5]步骤0.01,因此原始数据文件非常大(关于640,000条目).将其读入内存也非常耗时,因为我正在使用的工具必须同时读取这种类型的多个原始数据文件.
我正在使用Python.
有没有办法在Python中有效地存储和读取这样的数据?我们的想法是包含一个工具,可以将这些原始数据文件按摩成可以更有效地读取的内容.我目前正在研究内插数据和存储一些系数(基本上通过计算时间替换内存),但我确信必须有一种更简单的方法来帮助记忆和时间.
谢谢SOCommunity!
PS:我在Java中看到了相关的问题.我在这里完全使用Python.
如果你使用 numpy (你可能应该使用),numpy.save/numpy.savez并且numpy.load应该能够很容易地处理这个问题。
例如:
import numpy as np
xs = np.linspace(-3, 5, 800)
ys = np.linspace(-3, 5, 800)
f_vals = np.random.normal(size=(xs.size, ys.size))
np.savez('the_file.npz', xs=xs, ys=ys, f=f_vals)
Run Code Online (Sandbox Code Playgroud)
速度相当快,并且生成的文件小于 5mb。