【发布时间】:2012-08-14 11:17:55
【问题描述】:
我正在做一个项目,我有来自 pdes 数值解的大型输入文件。数据格式如下。
x \t y \t f(x,y)
对于每个 y 值,我们有多个 x 值,以及在每个点评估的函数值。我正在处理的数据大小约为[-3, 5]x[-3, 5],每个维度的步长为0.01,因此原始数据文件非常大(大约640,000 个条目)。将其读入内存也非常耗时,因为我正在使用的工具必须同时读取多个这种类型的原始数据文件。
我正在使用 Python。
有没有办法在 Python 中有效地存储和读取这样的数据?这个想法是包含一个工具,将这些原始数据文件按摩成可以更有效地读取的东西。我目前正在对数据进行插值并存储一些系数(本质上是通过计算时间来代替内存),但我确信必须有一种更简单的方法来帮助内存和时间。
感谢 SOCommunity!
PS:我在Java中看到了相关的问题。我在这里完全使用 Python。
【问题讨论】:
-
如果
x和y的值是可预测的,那你为什么要将它们存储在文件中呢?您是否考虑过根据f(x,y)值的位置简单地生成它们的值? -
你读的怎么样?它不应该那么慢。
-
我基本上是循环遍历每一行并用 [x][y] 存储到一个字典中。我的下一步是从文件中删除 x 和 y 值,因为它们就像@cheeken 建议的那样是可预测的。现在我想知道是否有办法插入数据,以便更好地优化阅读。
标签: python large-data