Hdf5文件比其各部分的总和大一千倍

时间:2016-08-10 13:55:36

标签: python-3.x hdf5 h5py

我有一个HDF5文件,在文件系统上显示为23G。对于我目前正在处理的问题,这似乎太大了,所以我决定进行调查。

该文件包含70个数据集,每个数据集大约100,000个实例(数据类型为int8,使用gzip压缩)。我查看了文件中每个数据集的大小,如下所示:

f = h5py.File('my_file.hdf5', 'r')
names = []
f.visit(names.append)

size = 0
dataset_count = 0
for n in names:
    if isinstance(f[n], h5py.Dataset):
         size += f[n].size
         dataset_count += 1
print("%i bytes in %i datasets out of %i items in hdf5 file." 
    % (size, dataset_count, len(names)))

输出以下内容:

  

hdf5文件中176个项目中的70个数据集中的7342650个字节。

我不打扰组/数据集属性,因为它们被限制在一定大小,并且无论如何文件中没有(检查它)。

将这些7,342,650字节与列出的文件大小23,622,594,194字节进行对比,我感到很茫然。这里发生了什么? HDF5的bug?文件系统错误?

如果我执行与上面代码相​​同的循环并将数据传输到新文件(没有gzip压缩),由于hdf5开销,我得到一个更大的文件,但不是那么大,在58,874,232字节。

Hdf5 libversion是1.8.7,h5py是2.5.0。

0 个答案:

没有答案