H5文件简介和使用

H5文件简介和使用H5文件是层次数据格式第5代的版本(HierarchicalDataFormat,HDF5),它是用于存储科学数据的一种文件格式和库文件。接触到这个文件格式也是因为上Coursera深度学习课程的时候,作业用到了。它是由美国超级计算与应用中心研发的文件格式,用以存储和组织大规模数据。目前由非营利组织HDF小组提供支持。目前,很多商业和非商业组织都支持这种文件格式,如Java,MATLAB,P…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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使用简介应该也是用了这个数据格式)。

H5本身用C程序提供库函数来提供外部访问的接口。在Python中,主要使用h5py模块来操作相关格式。其读取的函数如下:

def load_data():
    train_dataset = h5py.File('datasets/train_catvnoncat.h5', "r")
    train_set_x_orig = np.array(train_dataset["train_set_x"][:]) # your train set features
    train_set_y_orig = np.array(train_dataset["train_set_y"][:]) # your train set labels

    test_dataset = h5py.File('datasets/test_catvnoncat.h5', "r")
    test_set_x_orig = np.array(test_dataset["test_set_x"][:]) # your test set features
    test_set_y_orig = np.array(test_dataset["test_set_y"][:]) # your test set labels

    classes = np.array(test_dataset["list_classes"][:]) # the list of 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_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()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195605.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 让你彻底理解浅拷贝和深拷贝的区别是什么_怎么让文件无法拷贝

    让你彻底理解浅拷贝和深拷贝的区别是什么_怎么让文件无法拷贝在写js的时候经常会遇到复制对象,在复制对象的过程中往往会出现新对象改变原对象等等的一些问题,今天特意梳理一下,希望能帮助到遇到这些问题的开发人员。什么是浅拷贝,深拷贝以及和他们之间的区别赋值浅拷贝深拷贝在开始梳理之前先说一下值类型和引用类型:值类型(基本类型):字符串(string)、数值(number)、布尔值(boolean)、undefined、null;引用类型:对象(Object)、数组(Array)、函数(Function);1、什么是浅拷贝,深拷贝以及和他们之间的区别

    2022年10月1日
  • 第一天python是干什么的–数字常量

    第一天python是干什么的–数字常量Python是干什么的?Python历史发明人:guidovanrossum1989名称:montypython马戏团发音:拍桑美国拍森英语Python能干啥?Python

    2022年7月5日
  • COleVariant的转换

    COleVariant的转换1.转为int型var.ChangeType(VT_I4);  int i=var.intVal; 2.COleVariant是数据库常用到的数据类型。它可以是字串,整型值,日期等。知道怎样将它转换为CString很有用处。设有CStringA;COleVariantB;来看看怎样将COleVariant转换为CString:switch(B.vt){

    2022年7月18日
  • C语言入门经典书籍_C语言从入门到精通

    C语言入门经典书籍_C语言从入门到精通国内良莠不齐的C语言教程数不胜数,同名如“C程序设计”“C语言程序设计”“C语言程序设计教程”的都多如牛毛,这些不知名的就不予考虑了,要看就看经典。笔者呕心沥血翻阅十几本C语言入门书,去其糟粕取其精华

    2022年8月3日
  • C语言之格式化输出字符

    C语言之格式化输出字符1、格式化输出字符:%d十进制有符号整数%ld十进制long有符号整数%u十进制无符号整数%o以八进制表示的整数%x以十六进制表示的整数%ffloat型浮点数%lfdouble型浮点数%e指数形式的浮点数%c单个字符%s字符串%p指针的值2、特殊应用:%5d要求宽度为5位,如果不足5位,前面空格补齐;如果足够5位,此语句无效。%05d要求宽度为5位,如果不足5位,前面0补…

    2022年7月24日
  • 将cas-server-3.5.2 导入到myeclipse中

    将cas-server-3.5.2 导入到myeclipse中

    2021年8月31日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号