h5 python,h5py库安装
本文简单介绍了在h5py库中创建文件、数据集和读取数据的基本方法。通过实例代码详细介绍,具有一定的参考价值。感兴趣的朋友可以参考一下。
00-1010h5py简介1。创建一个h5py文件2。创建数据集3。创建一个群。本文只是简单介绍一下h5py库的基本文件创建、数据集和数据读取方法。笔者刚接触H5PY,完全靠看文档学的。如有不妥,请指正!如果读者需要详细了解h5py,请参考h5py的官方文档。
目录
H5py文件是一个容器,用于存储两种对象,即数据集和组。dataset是类似array类的数据集合,array类类似于numpy array。Group是一个类似文件夹的容器,就像python中的字典。它有键和值。组可以存储数据集或其他组。“Key”是组成员的名称,“value”是组成员对象本身(组或数据集)。让我们看看如何创建组和数据集。
h5py简单介绍
导入h5py
#如果你读一个文件,把W改成r。
f=h5py。文件( myh5py.hdf5 , w )
将在当前目录中生成一个myh5py.hdf5文件。
1. 创建一个h5py文件
导入h5py
f=h5py。文件( myh5py.hdf5 , w )
#deset1是数据集的名称,(20,)代表数据集的形状,I代表数据集的元素类型。
d1=f.create_dataset(dset1 ,(20, I )
对于f.keys()中的键:
打印(键)
打印(f[键]。姓名)
打印(f[键]。形状)
打印(f[键]。值)
输出:
数据集1
/dset1
(20,)
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
这里,我们只创建一个存储20个整数元素的数据集,不赋值。默认情况下,它们都是0。如何赋值?请参见下面的代码。
导入h5py
将numpy作为np导入
f=h5py。文件( myh5py.hdf5 , w )
d1=f.create_dataset(dset1 ,(20, I )
#分配
d1[.]=np.arange(20)
#或者我们可以直接创建一个数据集,并按如下方式赋值
f[dset2]=np.arange(15)
对于f.keys()中的键:
打印(f[键]。姓名)
打印(f[键]。值)
输出:
/dset1
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
/dset2
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
如果我们有现成的numpy数组,我们可以在创建数据集时分配它。这时候我们就不用指定数据的类型和形状了,只需要把数组名传给参数数据就可以了。
导入h5py
将numpy作为np导入
f=h5py。文件( myh5py.hdf5 , w )
a=np.arange(20)
d1=f.create_dataset(dset1 ,data=a)
对于f.keys()中的键:
打印(f[键]。姓名)
打印(f[键]。值)
输出:
/dset1
[ 0 1 2 3 4 5 6
7 8 9 10 11 12 13 14 15 16 17 18 19]
现在把这几种创建的方式混合写下。看下面的代码
import h5py
输出:
/dset1
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
/dset2
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
/dset3
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
3. 创建group组
import h5py
输出:
/bar/dset1
[0 1 2 3 4 5 6 7 8 9]
/bar/dset2
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
注意观察数据集dset1和dset2的名字是不是有点和前面的不一样,如果是直接创建的数据集,不在任何组里面,那么它的名字就是/+名字,现在这两个数据集都在bar这个group(组)里面,名字就变成了/bar+/名字,是不是有点文件夹的感觉!继续看下面的代码,你会对group和dataset的关系进一步了解。
import h5py
输出:
.............
/bar1
/bar2
/dset
.............
/bar1/car1
/bar1/dset1
.............
/bar2/car2
/bar2/dset2
.............
到此这篇关于python库h5py入门详解的文章就介绍到这了,更多相关python h5py内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。