Как расширить h5py, чтобы я мог получить доступ к данным в файле hdf5? - PullRequest
2 голосов
/ 22 марта 2011

У меня есть небольшая программа на Python, которая создает файл hdf5 с помощью модуля h5py. Я хочу написать модуль Python для работы с данными из файла hdf5. Как я мог это сделать?

Точнее говоря, я могу установить для пустых массивов значение PyArrayObject и читать их с помощью PyArg_ParseTuple. Таким образом, я могу читать элементы из массива numpy, когда пишу модуль python. Как читать файлы hdf5, чтобы я мог получить доступ к отдельным элементам?

Обновление: спасибо за ответы ниже. Мне нужно читать файл hdf5 из C, а не из Python - я знаю, как это сделать. Например:

import h5py as t
import numpy as np
f=t.File('\tmp\tmp.h5', 'w')
#this file is 2+GB
ofmat=np.load('offsetmatrix.npy')
f['FileDataset']=ofmat
f.close()

Теперь у меня есть файл hdf5 с именем '\ tmp \ tmp.h5'. Что мне нужно сделать, это прочитать отдельные элементы массива из файла hdf5, используя C (а не Python), чтобы я мог что-то сделать с этими элементами. Это показывает, как расширять массивы numpy. Как продлить hdf5?

Редактировать: Грамматика

Ответы [ 2 ]

2 голосов
/ 22 марта 2011

h5py предоставляет вам прямой интерфейс для чтения / записи и манипулирования данными, хранящимися в файле hdf5. Вы смотрели на документы?

http://docs.h5py.org/

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

1 голос
/ 22 марта 2011

Если вам на самом деле не нужна конкретная структура HDF5, но вам просто нужна скорость и кроссплатформенная совместимость, я бы рекомендовал взглянуть на PyTables .Он имеет встроенную возможность чтения и записи массивов Numpy.

...