Pythond 读写HDF5文件
HDF(Hiearchical Data Format)是一种针对大量数据进行组织和存储的文件格式,可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输。
HDF是美国国家高级计算应用中心(National Center for Supercomputing Application,NCSA)为了满足各种领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式。它的通用性比较强,许多数据类型都可以被嵌入在一个HDF文件里。例如符号、数字和图形数据可以同时存储在一个HDF文件里。HDF还是跨平台的,是一种与平台无关的文件格式,无需任何转换就可以在不同平台上使用。
从20世纪八十年代起,NCSA陆续推出了HDF1~HDF4版本,HDF5发布于1998年,相比HDF4,HDF5具有以下改进:
- 被设计为一种新的格式用来改进HDF4.x,特别是每个文件可以存储更大的文件和更多的对象。
- 数据模式更简洁、更全面,它包含两个基本结构:多维数组记录结构,和分组结构。
- 更简洁、更利于工程库和应用编程接口,支持并行I/O,线程和其他一些现代系统和应用要求。
HDF5 是一种层次化的格式(hierarchical format),经常用于存储复杂的科学数据。例如 MATLAB 就是用这个格式来存储数据。在存储带有关联的元数据(metadata)的复杂层次化数据的时候,这个格式非常有用,例如计算机模拟实验的运算结果等,并且在技术上提供了丰富的接口,包含C,C++,Fortran, Python, Java等,能够在不同的语言间完美兼容。
HDF5在Python中的工具包是h5py,创建一个HDF5文件:
# -*- coding: utf-8 -*-
import h5py # 导入工具包
import numpy as np
# HDF5的写入:
imgData = np.zeros((30, 3))
with h5py.File('HDF5_FILE.h5', 'w') as f:
f['data'] = imgData # 将数据写入文件的主键data下面
f['labels'] = range(100) # 将数据写入文件的主键labels下面
# f.close() # 关闭文件
print '*.h5 Created.
或者:
# -*- coding: utf-8 -*-
import h5py # 导入工具包
import numpy as np
# HDF5的写入:
imgData = np.zeros((30, 3))
with h5py.File('HDF5_FILE.h5', 'w') as f:
f.create_dataset('data', data=imgData)
f.create_dataset('labels', data=range(100))
# f.close() # 关闭文件
print '*.h5 Created.'
读取.h5文件内容:
# -*- coding: utf-8 -*-
import h5py # 导入工具包
import numpy as np
# HDF5的读取:
with h5py.File('HDF5_FILE.h5', 'r') as f:
for item in f.keys():
print 'main key is: {}'.format(item)
content = f[item][:]
print 'key value of {0} is: {1}'.format(item,content)
# f.close()
Pythond 读写HDF5文件的更多相关文章
- (数据科学学习手札63)利用pandas读写HDF5文件
一.简介 HDF5(Hierarchical Data Formal)是用于存储大规模数值数据的较为理想的存储格式,文件后缀名为h5,存储读取速度非常快,且可在文件内部按照明确的层次存储数据,同一个H ...
- 使用h5py操作hdf5文件
HDF(Hierarchical Data Format)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件.HDF 最早由美国国家超级计算应用中心 NCSA 开发,目前在非盈利组织 HDF ...
- [转载]C#读写txt文件的两种方法介绍
C#读写txt文件的两种方法介绍 by 大龙哥 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char ...
- 用opencsv文件读写CSV文件
首先明白csv文件长啥样儿: 用excel打开就变成表格了,看不到细节 推荐用其它简单粗暴一点儿的编辑器,比如Notepad++, csv文件内容如下: csv文件默认用逗号分隔各列. 有了基础的了解 ...
- 在.net中读写config文件的各种方法
阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collec ...
- MFC vs2012 Office2013 读写excel文件
近期在忙一个小项目(和同学一起搞的),在这里客户要求不但读写txt,而且可以读写excel文件,这里本以为很简单,结果...废话少说,过程如下: 笔者环境:win7 64+VS2012+Office2 ...
- Java读写资源文件类Properties
Java中读写资源文件最重要的类是Properties 1) 资源文件要求如下: 1.properties文件是一个文本文件 2.properties文件的语法有两种,一种是注释,一种属性配置. 注 ...
- c# 利用动态库DllImport("kernel32")读写ini文件(提供Dmo下载)
c# 利用动态库DllImport("kernel32")读写ini文件 自从读了设计模式,真的会改变一个程序员的习惯.我觉得嘛,经验也可以从一个人的习惯看得出来,看他的代码编写习 ...
- 用Python读写Excel文件(转)
原文:google.com/ncr 虽然天天跟数据打交道,也频繁地使用Excel进行一些简单的数据处理和展示,但长期以来总是小心地避免用Python直接读写Excel文件.通常我都是把数据保存为以TA ...
随机推荐
- S5第一次月考
# Python五期月考一 # 1 介绍 # 满分100分,90分及格 # # 考试范围: # 1.Python语法 # 2.数据类型 # 3.流程控制 # 4.函数 # 5.模块 # # 考试时间: ...
- CNN学习笔记:神经网络表示
CNN学习笔记:神经网络表示 双层神经网络模型 在一个神经网络中,当你使用监督学习训练它的时候,训练集包含了输入x还有目标输出y.隐藏层的含义是,在训练集中,这些中间节点的真正数值,我们是不知道的,即 ...
- HDU - 6370 Werewolf 2018 Multi-University Training Contest 6 (DFS找环)
求确定身份的人的个数. 只能确定狼的身份,因为只能找到谁说了谎.但一个人是否是民,无法确定. 将人视作点,指认关系视作边,有狼边和民边两种边. 确定狼的方法只有两种: 1. 在一个仅由一条狼边组成的环 ...
- SqlHelper简单实现(通过Expression和反射)8.Sql Server数据处理类
这个类基本上就是调用EntityHelper,ExpressionHelper和ObjectHelper来进行各种完整SQL的拼接操作. using System; using System.Conf ...
- gitlab + jenkins + docker + k8s
总体流程: 在开发机开发代码后提交到gitlab 之后通过webhook插件触发jenkins进行构建,jenkins将代码打成docker镜像,push到docker-registry 之后将在k8 ...
- ICMP与PING解析
1.ICMP格式 ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消 ...
- 【HTML5校企公益课】第三天
1.上午2D.旋转变色的... 基本思路就是先写静态画面然后添加动画. <!--告诉浏览器该文件为网页格式--> <html> <!--网页的头部标签--> ...
- CSS3飘带状3D菜单
在线演示 本地下载
- redhat6.8链路聚合
centos 6.X 聚合链路 0.查看NetworkManager服务,停止NetworkManager服务.不做这一步很可能出问题 service NetworkManage ...
- GoLang激活码
虽然行为不太好,但是购买的话实在是比较贵. 进入软件,Help-Register,选择License Server,输入 http://idea.youbbs.org 激活即可.