在 h5py 中输入数字数组列表
Input a list of arrays of numbers in h5py
我试图使用 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
如果没有,还有什么其他合适的方法来存储我以后可以从内存中访问的这样的列表。
提前感谢您的帮助
您可以将您的列表列表拆分为单独的数据集并单独存储它们:
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]
我试图使用 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
如果没有,还有什么其他合适的方法来存储我以后可以从内存中访问的这样的列表。
提前感谢您的帮助
您可以将您的列表列表拆分为单独的数据集并单独存储它们:
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]