我试图使用h5py将数字数组列表输入到HDF5文件中。考虑例如:
f = h5py.File('tester.hdf5','w')
b = [[1,2][1,2,3]]
这会引发错误。
TypeError: Object dtype dtype('O') has no native HDF5 equivalent
所以我假设HDF5不支持这个。
就像你可以使用特殊的数据类型存储字符串列表一样,是否有一种方法可以列出数值数组。
H5py store list of list of strings
如果没有,那么存储这样一个列表的其他合适方法是什么,我可以稍后从内存中访问。
感谢您的帮助
答案 0 :(得分:5)
您可以在单独的数据集中拆分列表列表并单独存储:
import h5py
my_list = [[1,2],[1,2,3]]
f = h5py.File('tester.hdf5','w')
grp=f.create_group('list_of_lists')
for i,list in enumerate(my_list):
grp.create_dataset(str(i),data=list)
执行此操作后,您可以像以前一样切片通过一些变化:
In[1]: grp[str(0)][:].tolist()
Out[1]: [1, 2]
In[2]: grp[str(1)][:].tolist()
Out[2]: [1, 2, 3]