如何复制部分或骨架 h5py 文件

2024-02-29

我对这个问题有几个疑问。我意识到这可能是一篇复杂的文章,可以提供额外的细节。

我使用的代码包可以生成大型 .h5 文件 (source.h5) (100+ Gb),其中几乎所有数据都驻留在 1 个数据集 (group2/D) 中。我想使用 Python 创建一个新的 .h5 文件 (dest.h5),其中包含除 source.h5 的 group2/D 之外的所有数据集,而无需复制整个文件。然后,我将在一些后处理后压缩 group2/D 并在 dest.h5 中用更少的数据编写一个新的 group2/D 。但是,我需要保留 source.h5,因为此后处理可能需要在多个目标文件中多次执行。

source.h5 的结构始终相同,并且不能在 source.h5 或 dest.h5 中更改,其中每个字母都是一个数据集:

group1/A
group1/B
group2/C
group2/D

因此,我想最初创建一个具有以下格式的文件:

group1/A
group1/B
group2/C

稍后再次填写 group2/D。简单地多次复制 source.h5 总是可以的,但我想避免多次复制一个大文件,因为磁盘空间有限,而且这不是一次性的情况。

我搜索并发现了这个问题(如何使用 python 将 Hdf5 文件部分复制到保持相同结构的新文件中? https://stackoverflow.com/questions/24510240/how-to-partially-copy-using-python-an-hdf5-file-into-a-new-one-keeping-the-same)并测试 dest.h5 是否与 source.h5 相同:

fs = h5py.File('source.h5', 'r')
fd = h5py.File('dest.h5', 'w')
fs.copy('group1', fd)
fd.create_group('group2')
fs.copy('group2/C', fd['/group2'])
fd.copy('group2/D', fd['/group2'])
fs.close()
fd.close()

但是我使用的代码包无法读取我创建的文件(我一定会发生这种情况),这意味着当我执行此操作时存在一些关键数据丢失(文件大小也相差 7 kb)。我假设问题出在我手动创建 group2 时,因为我使用 numpy 检查了 group1 数据集中的值在 source.h5 和 dest.h5 中完全匹配。在深入研究丢失的数据之前,我想先弄清楚一些事情:

问题一:每个组或数据集是否附带 .h5 文件元数据?如果是这样,我怎样才能看到它,以便我可以在 dest.h5 中创建一个与 source.h5 中的完全匹配的 group2 ?有没有办法查看 2 个组(不是数据集)是否完全匹配?

问题2:或者,是否可以简单地复制 .h5 文件的数据结构(即具有空列表的组和数据集作为骨架文件),以便稍后可以填充字段?或者,作为这个问题的一个子集,有没有办法将空白数据集复制到另一个文件,以便保留任何元数据(假设有一些元数据)?

问题3:最后,为了避免这一切,是否可以将 source.h5 的子集复制到 dest.h5 ?像这样的东西:

fs.copy(['group1','group2/C'], fd)

谢谢你的时间。感谢您读到这里


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何复制部分或骨架 h5py 文件 的相关文章

  • 安装tensorflow的正确命令

    当尝试在 Anaconda 上安装 Tensorflow 时 我尝试了两种类型的命令 conda install tensorflow gpu工作得很好 然而 当尝试conda install c anaconda tensorflow g
  • 分配列表的多个值

    我很想知道是否有一种 Pythonic 方式将列表中的值分配给元素 为了更清楚 我要求这样的事情 myList 3 5 7 2 a b c d something myList So that a 3 b 5 c 7 d 2 我正在寻找比手
  • Python Numpy Reshape错误[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试重塑 3D numpy 数组时遇到一个奇怪的错误 数组 x 的形状为 6 10 300 我想将其重塑为 6 3000 我正
  • 高效地将大型 Pandas 数据帧写入磁盘

    我正在尝试找到使用 Python Pandas 高效地将大型数据帧 250MB 写入磁盘或从磁盘写入的最佳方法 我已经尝试了所有方法Python 数据分析 但表现却非常令人失望 这是一个更大项目的一部分 该项目探索将我们当前的分析 数据管理
  • 绝对导入不起作用,但相对导入起作用

    这是我的应用程序结构 foodo setup py foodo init py foodo py models py foodo foodo foodo py从导入类models py module from foodo models im
  • 如何将脚本作为 pytest 测试运行

    假设我有一个用简单脚本表示的测试assert 陈述 请参阅背景了解原因 例如 import foo assert foo 3 4 我如何以一种好的方式将该脚本包含在我的 pytest 测试套件中 我尝试了两种有效但不太好的方法 一种方法是将
  • Python 中 time.sleep 和多线程的问题

    我对 python 中的 time sleep 函数有疑问 我正在运行一个脚本 需要等待另一个程序生成 txt 文件 虽然 这是一台非常旧的机器 所以当我休眠 python 脚本时 我遇到了其他程序不生成文件的问题 除了使用 time sl
  • 如何在 numpy 数组中查找并保存重复的行?

    我有一个数组 例如 Array 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 1 1 1 2 2 2 我想要输出以下内容的东西 Repeated 1 1 1 2 2 2 保留重复行的数量也可以 例如 Repeated 1 1
  • Pandas如何按时间段过滤DataFrame

    我有一个包含下表的文件 Name AvailableDate totalRemaining 0 X3321 2018 03 14 13 00 00 200 1 X3321 2018 03 14 14 00 00 200 2 X3321 20
  • 无法在我的程序中使用 matplotlib 函数

    我正在 Windows 10 中运行 Anaconda 安装 conda 版本 4 3 8 这是我尝试在 python 命令行中运行的代码 import matplotlib pyplot as plt x 1 2 3 4 y 5 6 7
  • 导入目录下的所有模块

    有没有办法导入当前目录中的所有模块 并返回它们的列表 例如 对于包含以下内容的目录 mod py mod2 py mod3 py 它会给你
  • 如何处理 Tkinter 中的窗口关闭事件?

    如何在 Python Tkinter 程序中处理窗口关闭事件 用户单击 X 按钮 Tkinter 支持一种称为协议处理程序 http web archive org web 20201111215134 http effbot org tk
  • 更改用作函数全局作用域的字典

    我想做一个 purePython 的装饰器 其中一部分是能够有选择地禁止访问函数的全局范围 有没有一种方法可以以编程方式更改哪个字典事物充当函数的全局 外部作用域 因此 例如在下面我希望能够拦截对f in h并抛出错误 但我想允许访问g因为
  • 重定向 python 交互式帮助()

    我正在为使用 Qt 的应用程序开发交互式 python shell 但是我似乎无法获得重定向的交互式帮助 我的 python 代码中有这个 class OutputCatcher def init self self data def wr
  • 使用 Sphinx 时,如何记录没有文档字符串的成员?

    我正在为我发布的包编写文档 我发现您的文档越全面 人们就越容易找到您的包来使用 废话 实际上 我在充满爱心地编写代码的所有功能和细节方面获得了很多乐趣 然而 我对如何为类级变量编写与 Sphinx 兼容的文档感到完全困惑 特别是 我有一些e
  • 如何使用logging.conf文件使用RotatingFileHandler将所有内容记录到文件中?

    我正在尝试使用RotatingHandler用于 Python 中的日志记录目的 我将备份文件保留为 500 个 这意味着我猜它将创建最多 500 个文件 并且我设置的大小是 2000 字节 不确定建议的大小限制是多少 如果我运行下面的代码
  • 在不同的 GPU 上同时训练多个 keras/tensorflow 模型

    我想在 Jupyter Notebook 中同时在多个 GPU 上训练多个模型 我正在使用 4GPU 的节点上工作 我想将一个 GPU 分配给一个模型并同时训练 4 个不同的模型 现在 我通过 例如 为一台笔记本选择 GPU import
  • 避免“散点/点/蜂群”图中的数据点重叠

    使用绘制点图时matplotlib 我想偏移重叠的数据点以使它们全部可见 例如 如果我有 CategoryA 0 0 3 0 5 CategoryB 5 10 5 5 10 我想要每一个CategoryA 0 数据点并排设置 而不是彼此重叠
  • 为什么我的 PyGame 应用程序根本不运行?

    我有一个简单的 Pygame 程序 usr bin env python import pygame from pygame locals import pygame init win pygame display set mode 400
  • 如何在 Qt 中以编程方式制作一条水平线

    我想弄清楚如何在 Qt 中制作一条水平线 这很容易在设计器中创建 但我想以编程方式创建一个 我已经做了一些谷歌搜索并查看了 ui 文件中的 xml 但无法弄清楚任何内容 ui 文件中的 xml 如下所示

随机推荐

  • 无法在 OSX yosemite 上构建 Java 项目

    我被以下错误阻止 com sun tools javac util Context put Ljava lang Class Ljava lang Object V 这是完整的跟踪 project git master gradle jar
  • Ruby 中的计时器性能

    我正在寻找一个演示 ruby 计时器的在线示例 并发现了下面的代码 它按预期工作 但是这个简单的程序使用 30Mo 内存 如 Windows 任务管理器中所示 和太多的 CPU 有意义吗 多谢 def time block start ti
  • 选择 pandas 中多索引列的子级别

    我生成一个像这个例子一样的多索引数据框 import pandas as pd import numpy as np iterables co1 co2 co3 co4 age weight multi pd MultiIndex from
  • 如何强制依赖项包含具有特定版本号的工件

    尝试使用 Maven 构建 GWT 项目时出现此错误 您的项目声明对 gwt user 2 6 0 的依赖 这个插件是 至少为 gwt 版本 2 7 0 设计 我发现 gwt user 2 6 0 是通过 com google gwt ev
  • ScanResult 功能解读

    我想分析 ScanResult 的功能字符串 但是 名称最多分组在四个方括号中 例如 WPA PSK TKIP CCMP WPA2 PSK TKIP CCMP WPS ESS 考虑到某些名称可能出现在不同的括号中 是否有某种文档描述哪个括号
  • 当用户删除 .app 时,卸载该 .app 安装的项目,包括 SMJobBless 助手

    简短版本 是否可以删除应用程序设置的帮助工具 SMJobBless 等 当应用程序被删除时 如果是这样 怎么办 长版本 不幸的是 我们正在开发的Mac应用程序需要管理员权限才能执行偶尔的操作 并且即使应用程序本身没有运行 它也需要一个后台任
  • 如何在android中使用textView进行页面卷曲?

    我发现了很好的 harism 项目 它可以实现漂亮的分页效果 如以下链接https github com harism android page curl https github com harism android page curl
  • 在子菜单qt中创建滚动条?

    我有一个地图应用程序和一个子菜单 其中动态添加的对象 即地图上的点 添加到子菜单中 具体取决于加载的图层 我可以通过单击相应的子菜单项来隐藏每个单独的对象 即一个点 有什么办法可以组织子菜单吗 当有很多点 即 100 时 整个子菜单会占据屏
  • 在 Oracle 数据库中使用 JdbcTemplate 插入时间戳 (ORA-01858)

    我已经阅读了很多有关此错误的内容 但仍然没有发现错误 我正在使用 JdbcTemplate 在某个带有时间戳列的表中插入一行 我很确定时间戳是问题所在 就好像从插入中删除它工作正常一样 My code private static fina
  • 如何将SVN中的分支与所有提交历史合并回主干?

    如何将SVN中的分支与所有提交历史合并回主干 我知道在 Git 中我可以使用 merge squash SVN中有类似的命令吗 我使用的是SVN 1 6 对于 Subversion 1 5 或更高版本 合并记录在本地工作副本的 svn me
  • Python中的嵌入层:如何正确使用Torchsummary?

    这是一个最低限度工作 可重现的示例 import torch import torch nn as nn from torchsummary import summary class Network nn Module def init s
  • Django OperationalError:没有这样的列:在 pythonanywhere 上

    首先 我能够修复导入错误 我发现这是因为pythonanywhere的Django版本没有更新 所以我将pythonanywhere上的Django从1 x x升级到2 0 9 错误是这样的 导入错误 无法导入名称 路径 django ve
  • 调用未定义的函数 ssh2_connect()

    connection ssh2 connect SFTP SERVER 22 ssh2 auth password connection SFTP USERNAME SFTP PASSWORD sftp ssh2 sftp connecti
  • 如何比较 Joda DateTime 对象与可接受的偏移量(容差)?

    我想知道有没有标准的APIJodaTime比较 2DateTime具有指定公差的物体 我正在寻找一种最好使用的单线Joda标准API 不适用于时间算术表达式 例如这个帖子 https stackoverflow com questions
  • 将变量从 PHP 传递到 Smarty

    我有两个脚本 一个在 php 中 一个在 tpl 中 我需要将 php 中的变量传递给 tpl 我尝试了这个 但没有任何作用 但不知何故 它可以工作一两天 然后 显示空白 如果我创建另一个PHP脚本只是为了回显变量 它起作用了 PHP代码
  • Angular2 - 带有语言的路线

    您好 我想使用以下格式的语言创建路线 www domain com lang sometimes Example www domain com en sometimes www domain com de sometimes 是否可以编写类
  • 如何将 React 应用程序捆绑到服务器上的子目录中?

    我有一个在本地主机上开发的 React 应用程序 我想将其复制到服务器上名为 vensa 的子目录中 我的 webpack 配置文件看起来像这样 const ExtractTextPlugin require extract text we
  • 将 null 传递给首选 String 而不是 Object 的方法

    我的程序中遇到了一个问题 我用下面的一个小代码片段澄清了这一问题 谁能解释为什么会发生这种情况 class ObjectnullTest public void printToOut String string System out pri
  • 如何使用纯 Javascript 和文档查询选择器实现 jQuery .on() 函数

    jquery on 函数 http api jquery com on 允许 DOM 事件在将来可能插入的元素上触发 如何使用纯 Javascript 来实现这一点 尤其是mouseenter具有特定类的元素上的事件 无需 jQuery 并
  • 如何复制部分或骨架 h5py 文件

    我对这个问题有几个疑问 我意识到这可能是一篇复杂的文章 可以提供额外的细节 我使用的代码包可以生成大型 h5 文件 source h5 100 Gb 其中几乎所有数据都驻留在 1 个数据集 group2 D 中 我想使用 Python 创建