Python : 更改 hdf5 数组的数据类型

Python : Change datatype of hdf5 array

我有如下所示的 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。

这个可行,但似乎很耗时,感谢其他解决方案。

创建一个新的 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">

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

The datatype of a dataset can never be changed.

另见 this 问题。