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 附加/大型数据集的省时方法 的相关文章

  • Python 的“platform.mac_ver()”报告不正确的 MacOS 版本

    我正在使用Pythonplatform module https docs python org 3 library platform html要识别 MacOS 版本 如下所示 import platform print platform
  • API网关+Lambda+Python:处理异常

    我正在非代理模式下从 API Gateway 调用基于 Python 的 AWS Lambda 方法 我应该如何正确处理异常 以便使用部分异常设置适当的 HTTP 状态代码以及 JSON 正文 作为示例 我有以下处理程序 def my ha
  • 二进制数据的Python字符串表示

    我试图理解 Python 显示表示二进制数据的字符串的方式 这是一个使用的示例乌兰多姆操作系统 http docs python org library os html os urandom In 1 random bytes os ura
  • 使用记事本打开文本文件作为python中的帮助文件?

    我想为我的简单程序的用户提供打开帮助文件的机会 以指导他们如何充分利用我的程序 理想情况下 我希望在 GUI 上有一个蓝色的小帮助链接 可以随时单击该链接 从而在本机文本编辑器 例如记事本 中打开 txt 文件 有没有一种简单的方法可以做到
  • 每个刻度标签都有不同的颜色

    我正在尝试使用 matplotlib python 3 5 创建一个散点图 其中 x 轴上的每个刻度都有不同的颜色 这怎么可能 例如 假设 x 刻度为 Mo Tu We Th Fr Sa Su 现在我希望 Mo 是绿色的 Tu 是蓝色的 等
  • 通过 rpy 将 SPSS 文件(.sav)导入 pandas 时如何保留标签?

    我正在寻找使用 SPSS 文件 sav pandas 在没有 SPSS 程序的情况下 典型文件转换为 csv 后的样子如下 在调查前两行的含义时 我不知道 SPSS 似乎第一行包含Labels 而第二行包含VarNames 当我将文件带入
  • Python gdal 未定义符号 GDALRasterBandGetVirtualMem

    我正在尝试使用Python GDAL 绑定 https pypi python org pypi GDAL 通过 pip 天真地安装绑定时 安装失败并显示错误 VSIFTruncateL 未在此范围内声明 https gis stackex
  • VS Code Pylint 在缺失的函数/类文档字符串上用蓝色下划线突出显示整个函数

    这种情况突然开始发生 当出现缺少函数文档字符串警告时 python pylint 会用蓝色波浪线突出显示整个函数 我怎样才能让它只突出显示函数定义或在定义行上制作一个小指示器 在开发时突出显示整个文件是非常烦人的 这是缺少类文档字符串的示例
  • 从另一个文件覆盖函数中的变量

    一 总结 我不知道如何从另一个文件覆盖函数中的变量 2 示例 2 1 配置 I use logbook http logbook pocoo org and pyfancy https github com ilovecode1 Pyfan
  • 如何在 Python for 循环中获取 GAE ndb 中当前记录的密钥?

    我目前有一个网页 其中显示数据存储中的记录列表以及编辑链接 我想从数据库转换它 至新开发银行 我是 Python 和 GAE 新手 当前代码 tbody for listtype in listtypes tr td listtype Li
  • Buildozer Numpy RuntimeError:工具链损坏:无法链接简单的 C 程序

    用 Python 编写我的第一个 Android 应用程序并使用 Buildozer 对其进行打包 因为稍后在项目中需要使用numpy 所以我尝试打包以下测试代码 import numpy import kivy kivy require
  • 当我移动我的 pygame 角色时,它会留下痕迹[重复]

    这个问题在这里已经有答案了 我一直在尝试用 Python 制作一个游戏 但是当我移动我的角色时 它会留下痕迹 我知道它并没有显示出那么多 但如果你靠近的话 你可以看到这条踪迹 这真的让我很困扰 这是我的代码 import pygame im
  • Google App Engine self.redirect() POST 方法

    在 GAE Python 中 使用 webApp 框架 调用 self redirect some url 通过 GET 方法将用户重定向到该 URL 是否也可以通过带有一些参数的 POST 方法进行 重定向 如果可以的话 怎样做 Than
  • 未使用的功能会产生什么后果

    我想知道在代码中使用未使用的函数会产生什么 如果有什么后果 如果您查找并删除所有未使用的函数和变量 性能是否会有明显的改进 或者删除未使用的函数和变量只是一个好习惯 未使用的功能不会损害性能 他们让维护代码的人的工作变得更加困难 现代 ID
  • 了解字典的深度

    假设我们有这个字典 d a 1 b c 了解嵌套的最直接方法是什么depth of it 您需要创建一个递归函数 gt gt gt def depth d if isinstance d dict return 1 max map dept
  • 使用条件在 pandas 数据框中生成新列

    我有一个 pandas 数据框 如下所示 portion used 0 1 1 0 1 2 0 3 2 3 0 0 3 4 0 8 我想根据以下内容创建一个新专栏used列 以便df看起来像这样 portion used alert 0 1
  • gstreamer 中的无缝视频循环

    我正在尝试使用 gstreamer 循环播放视频 它是 python 绑定 第一次尝试是hook EOSmessage并为管道生成搜索消息 import gi gi require version Gst 1 0 from gi repos
  • 在Python中通过sys.stdout写入unicode字符串

    暂时假设一个人无法使用print 从而享受自动编码检测的好处 所以这给我们留下了sys stdout 然而 sys stdout太蠢了不做任何合理的编码 http bugs python org issue4947 现在人们阅读 Pytho
  • *Python 内的 Kaggle API 文档?

    我想写一个python从 Kaggle com 下载公共数据集的脚本 Kaggle API 是用 python 编写的 但是我能找到的几乎所有文档和资源都是关于如何在命令行中使用该 API 的 而关于如何使用kaggle图书馆内python
  • 展开 std::reference_wrapper 的成本

    Given include

随机推荐

  • 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