Как читать массив Matlab в Python с помощью h5py

у меня есть массив Matlab> 2 ГБ ... я хочу прочитать его с помощью h5py. Данные представляют собой простой трехмерный двойной массив. Но я просто не мог найти подсказку в Интернете.

Кто-нибудь может мне помочь ? Мне просто нужен пример, как это делается. Документация h5py не смогла мне помочь.


person reBourne    schedule 31.01.2014    source источник
comment
Кто-то ответил здесь (см. второй ответ)   -  person Ricardo Cárdenes    schedule 31.01.2014
comment
Но у меня это не работает: результаты печати данных «Нет»   -  person reBourne    schedule 31.01.2014
comment
Хорошо понял. Я не использовал опцию 'r' и перезаписал файл ничем :S Теперь он работает! Спасибо !   -  person reBourne    schedule 31.01.2014
comment
Я все равно отвечу, так как в другом вопросе указаны файлы .mat   -  person Ricardo Cárdenes    schedule 31.01.2014


Ответы (2)


На этот вопрос уже был дан ответ, но со ссылкой на файлы .mat. Как сказал @vikrantt здесь - я копирую его код примера, - последние версии Matlab сохраняются в формате HDF5, а те, которые вы можно просто:

import numpy as np, h5py 
f = h5py.File('somefile.mat','r') 
data = f.get('data/variable1') # Get a certain dataset
data = np.array(data)

Обратите внимание, что это описано в собственной документации h5py о его API высокого уровня. Я рекомендую прочитать Групповые объекты, чтобы лучше понять, как извлекать информацию из файла, а затем Совместимость с Numpy.

person Ricardo Cárdenes    schedule 31.01.2014

Альтернатива с использованием синтаксиса словаря:

import h5py
f = h5py.File('somefile.mat','r')
myvar = f['myvar'].value

Чтобы загрузить все значения, посмотрите: https://stackoverflow.com/a/29856030/1615523

person Sam Inverso    schedule 08.10.2016