我想将一些数据写入HDF5文件(因为我有大量的数据集,并且被告知HDF5可以很好地处理这些事情。)
我有一个带有一些值和一些numpy数组的Python 2.7字典。我想做的只是将字典转储到HDF5中。没有组或其他什么,只需将键值对放入HDF5。
但是,使用h5py,如果我在文件中写入一个空数组(或列表),我会得到:
>>> file["test"] = np.array([])
ValueError: zero sized dimension for non-unlimited dimension (Invalid arguments to routine: Bad value)
我无法相信HDF5不允许我将空数组放入其中。碰巧有时候我的清单是空的。无法帮助它。
我错过了什么?
谢谢: - )
答案 0 :(得分:0)
这就是我使用的内容(因为你不需要小组,但你可能会改变主意,因此可能没有必要):
def save_group(outfile, d, group):
with h5py.File(outfile, 'a') as g:
for key in d:
value = d[key]
try:
group.require_dataset(key, value.shape, value.dtype)
except TypeError as e:
del group[key]
group.create_dataset(key, value.shape, value.dtype)
group[key][...] = value
return
要删除组参数:
group = g.require_group('/')
答案 1 :(得分:0)
如评论中所述,h5py 2.0.0不支持大小为零的数组。据我所知,这个功能似乎已添加到this pull request。