У меня есть небольшая программа на Python, которая создает файл hdf5 с помощью модуля h5py. Я хочу написать модуль Python для работы с данными из файла hdf5. Как я мог это сделать?
В частности, я могу установить массивы numpy в 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?
Изменить: грамматика
PyArrayObject
, похоже, что вы используете интерфейс C ... Вы пишете C или python? - person Joe Kington   schedule 22.03.2011cython
и вызвать низкоуровневые функции C HDF5 для доступа к данным. Или, в качестве альтернативы, вытащите фрагменты данных в массив numpy, а затем выполните вычисления в массиве numpy, используя cython или написав расширение python: scipy.org/Cookbook/C_Extensions/NumPy_arrays - person JoshAdel   schedule 23.03.2011