python hdf5和lua之间的连接

1、在lua中解析hdf5文件的代码如下:

local a = hdf5.open('./val.h5','r')
imgname = a:read('imgname'):all()
如果val.h5文件中有相应的域的话,就可以像上面一样去访问,但是如果imgname里面存储的是字符串数组的话,抱歉,hdf5的lua借口是无法读出来的,所以在做hdf5文件的时候要将字符串转换为字符数组,然后写入到hdf5文件里面。因为使用Python写的生成hdf5文件,所以需要将字符串转化为对应的字符数组,Python默认存储字符串都是str格式,但是lua的hdf5不认识的
image_id_array = np.zeros(shape=16)
image_id_array  = np.array([ord(image_id[kk]) for kk in range(16)])   #image_id = 000000425226.jpg
imgname_all.append(image_id_array)
f_h5.create_dataset('imgname',data=imgname_all)
这样字符串就会变成一系列的int值存储,lua就会对应的解析,解析代码如下
ffi= require 'ffi'
ffi.string(self.annot.imgname[idx]:char():data())
2、h5py官网地址

http://docs.h5py.org/en/latest/strings.html

3、用hdf5写文件的时候,group相当于字典,dataset相当于numpy数组,两种形式的构建都可以

f_h5.create_dataset('imgname',data=imgname_all_last)
f_h5['imgname'] = imgname_all_last
4、一篇很好的关于numpy数据类型转化以及总结的文章 点击打开链接



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值