Чтение файла h5 - PullRequest
       8

Чтение файла h5

0 голосов
/ 21 ноября 2018

Я новый пользователь Python и хочу прочитать данные из файла h5.Код, который я использовал для чтения данных, приведен ниже:

>>> import numpy as np
>>> import h5py
>>> f = h5py.File('file.h5', 'r')
>>> list(f.keys())
[u'data']
>>> dset = f[u'data']
>>> dset.shape
(64, 64, 64)
>>> dset.dtype
dtype(('<f8', (3,)))

Может кто-нибудь помочь мне понять эти команды?Мои вопросы: 1. Что я могу понять по терминам [u'data '] и dtype (('

1 Ответ

0 голосов
/ 21 ноября 2018

Как упоминает @hpaulj, документация h5py является хорошим справочным материалом.Вы также должны понимать основные концепции файлов HDF5.Это большая тема.Чтобы начать, просмотрите страницы Learning HDF5 от The HDF Group.Я знаю (из личного опыта), что вы будете бороться, если не понимаете, как ориентироваться в иерархии.Изучите различия между объектами Group и Dataset.

Вот объяснение вывода в вашем OP.Обратите внимание, что это все функции h5py (не numpy).

>>> list(f.keys())
[u'data']

«Ключи» - это имена членов группы, а «значения» - это члены (объекты Group и Dataset).Это список имен узлов на корневом уровне файла.Узлы могут быть группами или наборами данных.В вашем случае у вас есть один набор данных с именем data.(Единственная группа в этом файле HDF5 - корневая группа: '/', под корнем нет групп.)

Следующий шаг обращается к данным в наборе данных data.

>>> dset = f[u'data']

Атрибут shape дает вам размеры набора данных:

>>> dset.shape
(64, 64, 64)

Атрибут dtype предоставляет вам типы данных набора данных (как numpy):

>>> dset.dtype
type(('<f8', (3,)))

Итак, у вас есть множество поплавков.Если вы хотите просмотреть данные, вы можете ввести их (я бы сделал это только для небольших наборов данных или среза для печати нескольких строк):

>>> for row in dset:
        print (row)

Отсюда, что вы делаете с данными:до вас.

...