hdf5 和 ndarray 附加/大型数据集的省时方法

2024-03-01

背景

我有一个 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(使用前将#替换为@)

hdf5 和 ndarray 附加/大型数据集的省时方法 的相关文章

随机推荐

  • JSF2/PrimeFaces 中的命名容器 [重复]

    这个问题在这里已经有答案了 PrimeFaces 中可能的命名容器有哪些 当我们想要使用以下命令更新表单上的某些 UI 控件时 为什么需要为 Ajax 更新调用附加命名容器 idupdate mainForm MainAccordian u
  • Visual Studio Code 中的语言可以扩展吗?

    Scenario 我有 JSON 文件 描述了一系列要执行的任务 其中每个任务都可以引用 JSON 文件中的其他任务和对象 tasks id first action doSomething result id second action
  • 如何使用python解压文件

    我怎样才能提取一个 zip or rar使用 Python 文件 迟到了 但我对任何答案都不满意 pip install patool import patoolib patoolib extract archive foo bar rar
  • 我可以使用 URL 打开 Windows 8 应用程序吗?

    我正在创建一个具有共享会话功能的应用程序 例如 私人应用程序到应用程序的聊天会话 我会启动应用程序并创建一个 聊天室 然后通过电子邮件与某人 共享 我想要做的是创建一个 URL 当单击它时 它会打开您计算机上的应用程序 如果我邀请您到我的
  • 在 C# Windows 窗体应用程序中捕获 Ctrl + Shift + P 击键 [重复]

    这个问题在这里已经有答案了 可能的重复 在 Windows 窗体应用程序中捕获组合键事件 https stackoverflow com questions 3062587 I need to perform a particular op
  • Java使用索引来一一显示数组

    我在按索引显示数组时遇到问题 我不知道为什么会发生这种情况 任何帮助将不胜感激 这是我的代码片段 create token2 String token2 create Scanner inFile2 Scanner inFile2 new
  • Swift 3 - 调整字体大小以适合宽度、多行

    我有一个 UILabel 它设置为 42 0 pt 字体 并且标签的宽度是使用基于标签本身以外的因素的自动约束设置的 也就是标签右侧和左侧的内容决定标签的宽度 我想自动调整字体大小以适应标签的宽度 但也可以的话分成两行 与此类似 我知道您可
  • 如何将表达式插入到R中的函数体中

    我有一个函数f lt function x x 我想插入该行x lt 2 x into f这样它最终会变成 function x x lt 2 x x 我明白我应该使用body 但到目前为止我只知道如何替换entire身体 这对于我的真正目
  • 如何修复输入和参数张量不在同一设备上?

    我看到其他人也遇到此错误 我尝试按照步骤解决 但仍然收到此错误 运行时错误 输入和参数张量不在同一设备上 在 cpu 处找到输入张量 在 cuda 0 处找到参数张量 我运行 model to device 和 input seq to d
  • PDFKit - 使用 pageViewController 的 PDFView - 滑动到下一页时页面渲染缓慢

    我有一个设置为使用 pageViewController 的 PDFView let pdfView PDFView let pdfDoc PDFDocument url Bundle main url forResource test w
  • 将 Eclipse Android 项目更新到下一个版本

    我在 Eclipse 中有一个 android 项目 我开始在 android 版本 2 2 中开发 我认为 我想更新该项目以在我的 2 3 3 设备上运行 有没有办法升级项目或者我需要创建一个新项目 因此 根据您的问题 我只想说 Andr
  • 修复发送信号中断系统调用时的竞争条件

    我有一个线程read 来自套接字 我希望能够异步停止线程 线程伪代码如下所示 int needs quit 0 void thread read void arg while 1 if needs quit close sock fd re
  • AlbersEqualArea 使用 lon 和 lat 限制区域

    我的数据是 100o 30o lon 和 0o 80o lat 我想使用投影来仅显示该区域 在我的脑海中 我想展示这样的情节 但是 当我尝试 AlbersEqualArea 投影时 如下所示 plt figure figsize 5 129
  • 使用 OkHttp、Okio 和 RxJava 下载文件

    我正在尝试使用 OkHttp 下载文件并使用 Okio 写入磁盘 我还为此过程创建了一个 rx observable 它正在工作 但是它比我以前使用的 Koush 的 Ion 库 明显慢 以下是我创建可观察对象的方法 public Obse
  • 无法将“System._COMObject”类型的 COM 对象转换为接口类型

    我有 3 个 SSIS 包 3 个 SSIS 包中的两个可以完美运行 第三个 这是第二个的副本 除了更改连接字符串不断引发问题 无法将类型 System ComObject 的 COM 对象强制转换为接口类型 Microsoft SqlSe
  • 在 for 循环中未设置的批处理脚本变量无效

    下面是我的脚本 我试图查看下面一层的文件夹并仅挑选出这些文件夹 因此 9 从路径中提取最后 9 个字符 但 set var 不会取消设置变量 因为输出返回时 相同的文件夹名称重复 次 另外 批处理不允许我直接在 i 上执行此提取技巧 因此需
  • 存根和mockito中的区别

    我是mockito新手 需要知道存根和何时之间的区别 1 stub cpproxy getBinList toReturn gettestbins 2 when cpproxy getBinList thenReturn gettestbi
  • Delphi - TDictionary 线程安全吗

    我的想法是使用 TDictionary 来管理 IdTCPServer 上的客户端连接 这是一个用于理解目的的简单示例代码 未经测试 var Dic TDictionary
  • 如何使用 FFMPEG 最好地转换 Flash 兼容的 mp4 文件?

    我正在尝试将不同的文件转换为闪存兼容的文件 mp4使用 ffmpeg 文件 但我似乎无法让它工作 当然 目标是以最小的文件大小获得最好的质量 到目前为止 我已经有了这个 它可以工作 但由于某种原因它不能在 Flash 播放器中播放 结果不太
  • hdf5 和 ndarray 附加/大型数据集的省时方法

    背景 我有一个 k n 维时间序列 每个序列表示为 m x n 1 数组 其中包含浮点值 n 列加上代表日期的一列 Example k 大约 400 万 个时间序列 看起来像 20100101 0 12 0 34 0 45 20100105