【发布时间】:2011-07-18 14:36:36
【问题描述】:
背景
我有一个 k n 维时间序列,每个都表示为 m x (n+1) 数组,其中包含浮点值(n 列加一表示日期)。
例子:
k(大约 400 万)个时间序列看起来像
20100101 0.12 0.34 0.45 ...
20100105 0.45 0.43 0.21 ...
... ... ... ...
每天,我都想为数据集的一个子集 (one hd5f 文件中。
问题
将行追加到数据集最省时的方法是什么?
输入是一个 CSV 文件,看起来像
key1, key2, key3, key4, date, value1, value2, ...
其中日期对于特定文件是唯一的,可以忽略。我有大约 400 万个数据集。问题是我必须查找密钥,获取完整的 numpy 数组,调整数组大小,添加行并再次存储数组。 hd5f 文件的总大小约为 100 GB。知道如何加快速度吗? 我想我们可以同意,使用 SQLite 或类似的东西是行不通的——只要我拥有所有数据,平均数据集将有超过 100 万个元素乘以 400 万个数据集。
谢谢!
【问题讨论】:
-
你在使用 h5py 吗?它适用于 NumPy 数组,您应该能够在不读取数组的其余部分的情况下附加所需的数据。
标签: python performance numpy hdf5