背景
我有一个 k n 维时间序列,每个序列表示为 m x (n+1) 数组,其中包含浮点值(n 列加上代表日期的一列)。
Example:
k(大约 400 万)个时间序列,看起来像
20100101 0.12 0.34 0.45 ...
20100105 0.45 0.43 0.21 ...
... ... ... ...
每天,我都想为数据集的子集 (onehd5f 文件。
Question
将行附加到数据集的最省时的方法是什么?
输入是一个 CSV 文件,如下所示
key1, key2, key3, key4, date, value1, value2, ...
其中日期对于特定文件来说是唯一的并且可以被忽略。我有大约 400 万个数据集。问题是我必须查找键、获取完整的 numpy 数组、调整数组大小、添加行并再次存储数组。 hd5f 文件的总大小约为 100 GB。知道如何加快速度吗?
我想我们可以同意,使用 SQLite 或类似的东西是行不通的——一旦我拥有了所有数据,平均数据集将拥有超过 100 万个元素乘以 400 万个数据集。
Thanks!
你看过吗PyTables http://www.pytables.org/moin?它是一个构建在 HDF5 库之上的分层数据库。
它有多种数组类型,但“表”类型听起来适合您的数据格式。它基本上是 NumPy 记录数组的磁盘版本,其中每一列都可以是唯一的数据类型。表有一个追加方法,可以轻松添加额外的行。
就从 CSV 文件加载数据而言,numpy.loadtxt 相当快。它将文件作为 NumPy 记录数组加载到内存中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)