Невозможно открыть набор данных в h5py - PullRequest
0 голосов
/ 24 ноября 2018

Когда я пытаюсь импортировать папку с помощью h5py, я могу открыть.Однако, когда я пытаюсь получить доступ к его наборам данных, появляется сообщение об ошибке.Есть ли причина, почему?

Код ниже используется для импорта папки:

hf = h5py.File('filename', 'r')

Однако, когда я использую код ниже, возникает ошибка:

x = np.array(hf["dataset"]) 

1 Ответ

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

Я думаю, у вас небольшая синтаксическая ошибка.Попробуйте это (без np.array):

x = hf['/dataset']

Я не думаю, что вам нужен ведущий '/' для определения корневого уровня, но это хорошая практика, чтобы включить (IMHO).

Если это не сработает, пришло время дважды проверить содержимое HDF5.Как спросил hpaulj, вы уверены, что dataset находится на корневом уровне?Может быть, есть промежуточная группа?Если это так, вам нужно определить полный путь к объекту:

dset_table = hf['/topgroup/dataset']

Я предлагаю вам использовать HDFView для проверки вашего файла или запустить утилиту h5dump ,Оба доступны на сайте загрузки HDF Group.Это устраняет вопросы кодирования.Вы также можете проверить имена групп следующим образом:

list(hf.keys())

Вы должны получить что-то вроде этого (если набор данных действительно находится на корневом уровне):

['dataset']

Наконец, вы можете использовать.get() для получения класса объекта.

get(name, default=None, getclass=False, getlink=False)

Установите getclass=True для получения класса Object: Group или Dataset.

...