数据学习
登录
注册
原创博客
期刊会议
学术世界
期刊出版社
领域期刊
SCI/SCIE/SSCI/EI简介
期刊列表
会议列表
所有期刊分区
学术期刊信息检索
JCR期刊分区查询
CiteScore期刊分区查询
中科院期刊分区查询
领域期刊分区
管理 - UTD24期刊列表
管理 - AJG(ABS)期刊星级查询
管理 - FMS推荐期刊列表
计算机 - CCF推荐期刊会议列表
高校期刊分区
南大核心(CSSCI)
合工大小核心
合工大大核心
AI资源仓库
AI领域与任务
AI研究机构
AI学术期刊
AI论文快讯
AI数据集
AI开源工具
AI模型
AI模型概览图
AI模型月报
AI基础大模型
AI预训练大模型
数据推荐
网址导航
我的网址导航
程序员必备网站
H5文件简介和使用
标签:
#python#
#数据#
时间:2018/07/21 20:04:01
作者:小木
H5文件是层次数据格式第5代的版本(Hierarchical Data Format,HDF5),它是用于存储科学数据的一种文件格式和库文件。接触到这个文件格式也是因为上Coursera深度学习课程的时候,作业用到了。它是由美国超级计算与应用中心研发的文件格式,用以存储和组织大规模数据。目前由非营利组织HDF小组提供支持。 目前,很多商业和非商业组织都支持这种文件格式,如Java,MATLAB,Python,R等。 官网网站:https://www.hdfgroup.org/ H5文件在内存占用、压缩、访问速度方面都有非常优秀的特性,在工业领域和科学领域都有很多运用。 H5将文件结构简化成两个主要的对象类型: 1、数据集,就是同一类型数据的多维数组。 2、组,是一种容器结构,可以包含数据集和其他组。 这导致了H5文件是一种真正的层次结构、文件系统式的数据类型。实际上,HDF5文件内部的资源是通过类似POSIX的语法进行访问的(/path/to/resource)。元数据是由用户定义的,以命名属性的形式附加到组和数据集中。更复杂的存储形式如图像和表格可以使用数据集、组和属性来构建。 除了文件格式的先进性,HDF5还包括了一个提升的类型系统,和数据空间对象,用以表示数据区域的选择。API也是关于数据集、组、属性、类型等的面向对象的形式。 由于使用B-tree来索引表格对象,H5非常适合时间序列的数据,如股票价格序列、网络监测序列数据和3D气象数据(中国国家卫星气象中心发布了一个文件[HDF5.0使用简介](file:///C:/Users/DuFei/Downloads/hdf50_userguid.pdf "HDF5.0使用简介")应该也是用了这个数据格式)。 H5本身用C程序提供库函数来提供外部访问的接口。在Python中,主要使用h5py模块来操作相关格式。例如,深度学习第二周提供的作业中包含了如下两个H5文件(https://github.com/andersy005/deep-learning-specialization-coursera/tree/master/01-Neural-Networks-and-Deep-Learning/week2/Programming-Assignments/datasets) ,其读取的函数如下: ```python import numpy as np import h5py def load_dataset(): train_dataset = h5py.File('E:/data/cousera/deeplearning_cat/train_catvnoncat.h5', 'r') train_set_x_orig = np.array(train_dataset["train_set_x"][:]) train_set_y_orig = np.array(train_dataset["train_set_y"][:]) test_dataset = h5py.File('E:/data/cousera/deeplearning_cat/test_catvnoncat.h5', 'r') test_set_x_orig = np.array(test_dataset["test_set_x"][:]) test_set_y_orig = np.array(test_dataset["test_set_y"][:]) classes = np.array(test_dataset["list_classes"][:]) train_set_y_orig = train_set_y_orig.reshape(1, train_set_y_orig.shape[0]) test_set_y_orig = test_set_y_orig.reshape(1, test_set_y_orig.shape[0]) return train_dataset, train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes train_dataset, train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes = load_dataset() ```
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
相关博客
最热博客