python 笔记:h5py 读取HDF5文件

1 HDF5文件

  • HDF5 是 Hierarchical Data Format version 5 的缩写,是一种用于存储和管理大量数据的文件格式
  • 一个h5py文件可以看作是 “dataset” 和 “group” 二合一的容器
    • dataset : 数据集,像 numpy 数组一样工作
    • group : 包含了其它 dataset 和 其它 group

2  读取文件

以t2vec的 data/porto-vocab-dist-cell100.h5 为例

import h5py
import numpy as npdata_dir='/home/ruizhichai/t2vec/data/porto-vocab-dist-cell100.h5'file=h5py.File(data_dir,'r')
#打开文件

2.1 keys:获取h5文件中所有组和数据集的名称

file.keys()
#<KeysViewHDF5 ['D', 'V']>

2.2 visit:根据指定的函数来遍历.h5文件的组和数据集

file.visit(lambda x: print(x))
'''
D
V
'''

2.3 读取每个数据集的内容

file['D'][:].shape,file['D'][:]
'''
((18866, 10),array([[   0.        ,    0.        ,    0.        , ...,    0.        ,0.        ,    0.        ],[   0.        ,    0.        ,    0.        , ...,    0.        ,0.        ,    0.        ],[   0.        ,    0.        ,    0.        , ...,    0.        ,0.        ,    0.        ],...,[ 412.31056256,  400.        ,  316.22776602, ...,  223.60679775,141.42135624,  200.        ],[1486.60687473, 1389.24439894, 1476.48230602, ...,  447.2135955 ,100.        ,    0.        ],[ 761.57731059,  707.10678119,  670.82039325, ...,  100.        ,0.        ,  200.        ]]))
'''

3 写HDF5文件

data_dir='tst.h5'file=h5py.File(data_dir,'w')

3.1 创建组

grp_1=file.create_group('group_1')
grp_2=file.create_group('group_2')

3.2 向组/file根目录写文件

lst1=np.arange(10)
lst2=np.arange(5,8)
lst3=np.arange(6,10,2)grp_1.create_dataset("lst1",data=lst1)
grp_2.create_dataset("lst2",data=lst2)
file.create_dataset("lst3",data=lst3)file.keys()
#<KeysViewHDF5 ['group_1', 'group_2', 'lst3']>file['group_1'].keys()
#<KeysViewHDF5 ['lst1']>file['group_1']['lst1'][:]
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/121846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GZ035 5G组网与运维赛题第4套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项&#xff08;高职组&#xff09; 赛题第4套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通&#xff08;35分&#xff09; 子任务1&#xff1a;5G公共网络部署与调试&#xff08;15分&#xff09; 子…

C语言_断言assert详解

一、assert定义 assert() 的用法像是一种"契约式编程"&#xff0c;在我的理解中&#xff0c;其表达的意思就是&#xff0c;程序在我的假设条件下&#xff0c;能够正常良好的运作&#xff0c;其实就相当于一个 if 语句&#xff1a; if(假设成立) {程序正常运行&…

(免费领源码) Asp.Net#SQL Server校园在线投票系统10557-计算机毕业设计项目选题推荐

摘 要 随着互联网大趋势的到来&#xff0c;社会的方方面面&#xff0c;各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去&#xff0c;而其中最好的方式就是建立网络管理系统&#xff0c;并对其进行信息管理。由于现在网络的发达&#xff0c;校园投票通过网…

java - IDEA IDE - 设置字符串断点

文章目录 java - IDEA IDE - 设置字符串断点概述笔记END java - IDEA IDE - 设置字符串断点 概述 IDE环境为IDEA2022.3 在看一段序列化的代码, 想找出报错抛异常那个点, 理解一下代码实现. 因为序列化代码实现在第三方jar包中, 改不了(只读的). 根本数不清第几次才会开始报…

java基础之泛型

泛型 泛型是在JDK1.5增加的功能&#xff0c;在没有泛型之前&#xff0c;从集合中取出来的每一个对象都必须进行强制类型转换&#xff0c;如果有人插入了错误类型的对象&#xff0c;在运行时的转换就会出现问题&#xff0c;有了泛型之后&#xff0c;这些问题就会在编译期暴露出来…

OpenCV学习(五)——图像基本操作(访问图像像素值、图像属性、感兴趣区域ROI和图像边框)

图像基本操作 5. 图像基本操作5.1 访问像素值并修改5.2 访问图像属性5.2 图像感兴趣区域ROI5.3 拆分和合并图像通道5.4 为图像设置边框&#xff08;填充&#xff09; 5. 图像基本操作 访问像素值并修改访问图像属性设置感兴趣区域&#xff08;ROI&#xff09;分割和合并图像 …

如何在vscode中添加less插件

Less &#xff08;Leaner Style Sheets 的缩写&#xff09; 是一门向后兼容的 CSS 扩展语言。它对CSS 语言增加了少许方便的扩展&#xff0c;通过less可以编写更少的代码实现更强大的样式。但less不是css&#xff0c;浏览器不能直接识别&#xff0c;即浏览器无法执行less代码&a…

2023年正版win10/win11系统安装教学(纯净版)

第一步&#xff1a;准备一个8G容量以上的U盘。 注意&#xff0c;在制作系统盘时会格式化U盘&#xff0c;所以最好准备个空U盘&#xff0c;防止资料丢失。 第二步&#xff1a;制作系统盘。 安装win10 进入windows官网 官网win10下载地址&#xff1a;https://www.microsoft.c…

安卓开发实例:随机数

点击按钮生成一个1-100之间的随机数 activity_random_number.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayoutxmlns:android"http://schemas.android.com/apk/res/android"xmlns:a…

conda 复制系统环境

直接复制 想要通过 conda 直接复制一个已存在的环境&#xff0c;你可以使用 conda create 命令并配合 --clone 参数。以下是具体步骤&#xff1a; 查看现有的环境: 首先&#xff0c;你可以使用以下命令来查看所有的 conda 环境&#xff1a; conda env list这会给你一个环境列表…

TypeScript -类型断言的简单理解

类型断言是干啥的 类型断言 &#xff1a; 是手动的给某个变量 指定类型&#xff0c;从而可以方便操作该类型的属性和方法。 类型断言的两种写法 方式一 &#xff1a; 变量名 as 类型 let x: number | string abc; console.log((x as string).length); // 输出 3 &#xff0c;因…

10月Java行情 回暖?

最近面试 Java 开发&#xff0c;看看行情。总的来说没有前几年好&#xff0c;真的是互联网寒冬&#xff0c;面试机会都比以前少了不少&#xff0c;很多互联网公司都在降本增效&#xff0c;只招少量的人。如果你能约到面试就好好珍惜&#xff0c;记住不要裸辞&#xff0c;不要裸…

记一次vue3实现TRSP大华相机拉流的经历

一、背景 业务场景&#xff0c;大华IP相机安装在A城市某建筑场所&#xff0c;工控机是内网通过4G流量卡上网&#xff0c;工控机通过相机采集数据后做故障识别并上传故障信息到地面服务器&#xff0c;地面服务器在B城市。 现需要在地面服务器提供的WEB界面上实现IP相机实时拉流…

linux套接字选项API

获取套接字的选项值(getsockopt) 【头文件】 #include <sys/types.h> #include <sys/socket.h> 【函数原型】 int getsockopt(int sockfd, int level, int optname,void *optval, socklen_t *optlen); 【函数功能】 用于获取一个套接字的选项 【参数含义】 […

P1025 [NOIP2001 提高组] 数的划分 题解

文章目录 题目描述输入格式输出格式样例样例输入样例输出 数据范围提示思路与部分实现完整代码 题目描述 将整数 n n n 分成 k k k 份&#xff0c;且每份不能为空&#xff0c;任意两个方案不相同&#xff08;不考虑顺序&#xff09;。 例如&#xff1a; n 7 n7 n7&#xf…

C++编译与运行:其一、静态类型和动态类型

一、什么是静态类型和动态类型&#xff1f; 先说结论&#xff1a;编译期间可以明确的类型是静态类型&#xff1b;运行期间才能明确的类型是动态类型。 后半句可能有点不好理解&#xff0c;通俗地说&#xff0c;需要通过执行代码才能明确的类型是动态类型。 假如我们有两个类&…

【前端】NodeJS核心知识点整理

1.Node.js入门案例 1.1.什么是Node.js JS是脚本语言&#xff0c;脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS&#xff0c;浏览器充当了解析器的角色。而对于需要独立运行的JS&#xff0c;NodeJS就是一个解析器。 每一种解析器都是一个运行环境&#xff0c;不但…

[Qt之“MMM dd yyyyhh:mm:ss“]时间格式

这是时间格式字符串&#xff0c;用于表示日期和时间的显示格式。具体解释如下&#xff1a; “MMM”&#xff1a;表示月份的缩写&#xff0c;例如Jan、Feb、Mar等。“dd”&#xff1a;表示日期的两位数&#xff0c;例如01、02、03等。“yyyy”&#xff1a;表示年份的四位数&…

数据特征工程 | 主成分分析(Python)

特征抽取(feature extraction)和特征选择(feature selection)不一样,特征抽取是从原特征集中推导出有用的信息构成新的特征集。特征选择是从原特征集中选择一部分子集作为训练特征。 特征抽取将数据集从一个特征空间投影到了一个更低维度的特征空间。 主成分分析(princ…

Debezium日常分享系列之:Debezium2.4版本之用于 MongoDB的Debezium 连接器

Debezium日常分享系列之&#xff1a;Debezium2.4版本之用于 MongoDB的Debezium 连接器 一、综述二、改变流三、阅读偏好四、MongoDB 连接器的工作原理五、支持的 MongoDB 拓扑六、所需的用户权限七、逻辑连接器名称八、执行快照九、临时快照十、增量快照1.增量快照流程2.Debezi…