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