【python基础】h5py库的基本使用
HDF(Hierarchical Data Format)是一种通用的跨平台、压缩性优异、灵活的数据存储结构,常用作科学数据的保存。而h5py则是python提供的HDF文件处理库。
h5py的核心概念包括:
(1)文件file,作为一种层次化的数据容器,file可理解为树根;
(2)组group,存储的索引,相当于树的节点;
(3)数据集dataset,索引对应的存储数据,相当于节点内存储的数据;
(4)属性attr,用来存储额外的小块元数据。
h5py支持层次化的group嵌套,如果将其类比于json格式,则group为key(索引),而group为value(数据)。
下面给出其典型的应用案例:
import numpy as np
import h5py# 1. 写入
f = h5py.File('./demo.h5', 'w') # 打开文件,更推荐用with管理上下文print(f.name) # '/', file相当于root
print(f.keys()) # <KeysViewHDF5 []>, 所有group的名称,相当于索引# 直接赋值
A = np.random.rand(100,100)
f['numpy_A'] = A # f[key]=value直接赋值,存储对应的group(numpy_A)和dataset(A)
for name in f: # 等同于for name in f.keys()print(name) # numpy_A# 创建组
f.create_group('group_1') # 和numpy_A同级
print(f.keys()) # numpy_A group_1# 组内通过赋值的方式创建dataset
B = np.random.rand(200,200)
f['group_1']['numpy_B'] = B# 通过create_dataset创建dataset
f['group_1'].create_dataset('mydataset', (10, 10), dtype='f')# 通过/直接同时创建group和dataset
f.create_dataset('group_2/mydataset2', (20,20), dtype='f')
print(f.keys()) # group_1 group_2 numpy_A# 创建属性
f.attrs['name'] = 'Mia' # 关闭,存储
f.close()# 2. 读取
f = h5py.File('./demo.h5', 'r')print(f.keys())# 获取属性的key
print(f.attrs.keys())# 递归遍历
f.visit(lambda x:print(x))
【python基础】h5py库的基本使用相关推荐
- 关于python 中h5py库安装不上的解决办法
关于python 中h5py库安装不上的解决办法 问题 解决步骤 1.先安装wheel这个库,方法就是从命令行中输入pip install wheel 2.下载自己对应的h5py的版本,网址如下 3. ...
- python基础代码库-python3.4第三方库的安装?python基础代码库
python怎么安装下载模块 python安装下载模块的:1.按盘上的[win r]快,打开运行窗口:2.输入cmd,点击定]:3.在打开的命令提示符中执行[pip install 模块名]命令即可. ...
- python基础代码库-python基础知识和练习代码
1.编译:将高级语言源代码转换成目标代码(机器语言),程序便可运行. 好处:目标代码执行速度更快:目标代码在相同操作系统上使用灵活. 2.解释:将高级语言源代码逐条转换成目标代码同时逐条执行,每次 ...
- python基础代码库-Python基础数据处理库-NumPy
最近更新:2017-07-19 NumPy是Python做数据处理的底层库,是高性能科学计算和数据分析的基础,比如著名的Python机器学习库SKlearn就需要NumPy的支持.掌握NumPy的基础 ...
- python基础代码库-python爬虫基础教程:requests库(二)代码实例
get请求 简单使用 import requests ''' 想要学习Python?Python学习交流群:973783996满足你的需求,资料都已经上传群文件,可以自行下载! ''' respons ...
- [转载] Python基础——Numpy库超详细介绍+实例分析+附代码
参考链接: Python中的numpy.identity 1.NumPy简介 NumPy是高性能科学计算和数据分析的基础包,计算速度要比python自带的函数快很多,非常好用.一般不需要安装,装Pyt ...
- python基础代码库-python基础:一个非常简单且详细的多线程代码
前言 多线程的好处应该不用多说吧?python语言内置了多线程功能支持,而不是单纯地作为底层操作系统的调度方式,从而简化了 Python 的多线程编程. 在实际应用,多线程还是很有用的,比如有时候可以 ...
- python基础题库-Python题库
为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C++等其他语言的对比? 简述解释型和编译型编程语言? Python解释器种类以及特点? 位和字节 ...
- python基础代码库-CNN详解-基于python基础库实现的简单CNN
CNN,即卷积神经网络,主要用于图像识别,分类.由输入层,卷积层,池化层,全连接层(Affline层),Softmax层叠加而成.卷积神经网络中还有一个非常重要的结构:过滤器,它作用于层与层之间(卷积 ...
- python基础代码库-python基础--注册和登录功能 代码
注册和登录功能单用户版 注册 count = 0 while count < 3: username_inp = input('请输入你的用户名:') pwd_inp = input('请输入你 ...
最新文章
- 使用Freestreamer 拖动滑动条音频重新播放或者没有声音seekToPosition无效
- SOA 的基本概念及设计原则浅议
- 文本分类--普通分类
- 聊聊这些天收到的简历
- 【性能优化】PHP代码输出压缩后HTML
- 苹果无人车或明年发布:被奔驰、比亚迪拒绝后,大众面包车终成接盘侠
- linux中shell数组的使用和建立
- Java 常用修饰符总结
- winrar4.0 注册码
- 一种依靠压缩电磁铁制造暗物质虫洞的机器
- 微信登录提示逻辑不正确_微信逻辑错误无法登录
- LINUX未来的发展前景
- 背课文记单词,读课文记单词,读文章记单词;40篇文章搞定3500词;71篇文章突破中考单词;15篇文章贯通四级词汇;15篇文章贯通六级词汇
- jackson解析泛型的正确写法,解决 in unnamed module of loader ‘app‘
- EasyExcel 动态表头 + 数据单元格合并
- 用java画国际象棋棋盘
- 我用wxPython搭建GUI量化系统之wx.grid实现excel功能
- 七、python排序之先按汉语拼音排序再按笔画排序
- 支持向量机(SVM)MATLAB 实例讲解,及选择训练方式使误差率尽可能减为0
- 软件测试/测试开发丨Java or Python?测试开发工程师如何选择合适的编程语言?