Python:更改hdf5数组

时间:2016-04-07 15:02:29

标签: python hdf5

我有hdf5数组如下:

>>> a = np.array([5,8])
>>> f = h5py.File('try.hdf5')
>>> f['try'] = a
>>> f['try']
<HDF5 dataset "try": shape (2,), type "<i4">

我想将f['try']的数据类型更改为float64。怎么做?

a = a.astype('float64')会为numpy做,但我不知道hdf5。

2 个答案:

答案 0 :(得分:1)

HDF5 User's Guide(第6.3.2节)清楚地说:

  

永远不能更改数据集的数据类型。

另见this问题。

答案 1 :(得分:0)

这个有效,但似乎很耗时,其他解决方案也很受欢迎。

制作新的hdf5文件

>>> f2 = h5py.File('try2.hdf5')
>>> f2['try2'] = f['try'][...].astype('float64')
>>> f2['try2']
<HDF5 dataset "try2": shape (2,), type "<f8">
>>> f['try']
<HDF5 dataset "try": shape (2,), type "<i4">