python使用h5py写h5文件,写入tuple元组类型

目标

  1. 如下,数据结构为一个list,然后list的每个元素都是一个tuple
    python使用h5py写h5文件,写入tuple元组类型_第1张图片
  2. 但是当我尝试将此数据结构保存到h5文件中时
f = h5py.File('tets.h5','w')   
f.create_dataset(code,data=df1)
f.close() 
#HDF5的读取:
f = h5py.File('tets.h5','r')  
list(f[code]) 

读取结果为:
python使用h5py写h5文件,写入tuple元组类型_第2张图片
结果将tuple自动转化为了array。

问题

查看源码之后发现h5py默认传入的是np.array,如果不是会进行各种检查,然后给你转化为np.array,而且从上面转化前后的结果,发现我的数据第一列转化前后数据类型发生了变化,由原来的int转换成了float,这也是h5py在转换过程中的精度损失。具体源码可以看:
create_dataset实现发放中的
在这里插入图片描述
然后追踪data参数即可

解决

先将list 即df1转化为np.array,,需要标注一下每列的数据类型,i表示int,f表示float

df1 = np.array(df1,dtype="i8,f,f")

此时正确写入。

你可能感兴趣的:(python,python,numpy,h5py)