hdf5追加到数据集通过引用添加

时间:2019-06-20 06:54:31

标签: python numpy reference dataset h5py

我正在读取一些我希望附加到hdf5数据集中的图像:

with h5py.File(output_file, 'w') as hf:
    i = 0
    for p,meta in get_images( file_pattern, star_pattern ):
        if i == 0:
            hf.create_dataset(dsname, data=p[np.newaxis,...], maxshape=(None,p.shape[0],p.shape[1]), chunks=True)
        else:
            hf[dsname].resize( (hf[dsname].shape[0]+1), axis=0 )
            hf[dsname][-hf[dsname].shape[0]:] = p.copy()
        print( ".", end='')
        i = i+1

其中pij的numpy数组(灰度图像),而get_images()返回元组中图像和元数据的python生成器。

所以问题是当我重新读取输出的文件时,我看到所有图像实际上都是相同的。我假设是因为p是对在循环中重用的numpy数组的引用。我本以为p.copy()应该避免这种情况。

我在做什么错了?

0 个答案:

没有答案