Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Python: изменить тип данных массива hdf5

Автор вопроса: KavanОтветов: 2

У меня есть массив 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.

pythonhdf5

Ответы

Ответ 1 · рейтинг 1 · charlie80

На Руководство пользователя HDF5 (раздел 6.3.2) четко говорит:

Тип данных набора данных никогда не может быть изменен.

Также см. этот вопрос.

Ответ 2 · Kavan

Этот работает, но, кажется, занимает много времени, другие решения приветствуются.

Создайте новый 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">

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы