Я хочу открыть проект Matlab с модулем Pickle или cPickle на языке Python. Не с:
from scipy.io import matlab
mat=matlab.loadmat('file.mat')
Могу ли я использовать pickle.load
с файлом.mat?
В течение нескольких лет Matlab использовал HDF5 для хранения данных. Python поддерживает HDF5, используя PyTables
. Не нужно использовать Pickle. Фактически, HDF5 может удивить вас своей скоростью относительно Pickle. Друг сообщил о 2-10X ускорениях чтения/записи для некоторых очень больших наборов данных.
Обновление 1: краткое руководство по загрузке файлов через HDF5 можно найти на этой странице.
Кроме того, на этой странице можно найти несколько хороших ссылок и ресурсов. Там также проект PyMat на Sourceforge.
Это невозможно. Из документации пилинга python
Модуль рассола реализует фундаментальный, но мощный алгоритм для сериализации и де-сериализации структуры объекта Python. "Травление" - это процесс, посредством которого иерархия объектов Python преобразуется в поток байтов, а "unpickling" - это обратная операция, посредством которой поток байтов преобразуется обратно в иерархию объектов. Однако травление (и переливание) альтернативно известно как "сериализация", "сортировка", " 1" или "сглаживание", чтобы избежать путаницы, используемые здесь термины "травление" и "рассыпание".
В вашем случае вы можете загрузить объект *.mat с помощью scipy.io и затем сериализовать его в некоторой структуре python, которую вы можете определить. В этот момент вы сможете легко рассолить и разложить его. (но этот последний шаг зависит, и в некоторых случаях его не стоит делать).
Вы не можете. Pickle
загружает объекты Python, которые были сериализованы для двоичных данных. Формат не похож на формат файла Matlab.
Если вы прочитали все данные, которые вам нужны из файла matlab и сохранили их в объектах Python, вы можете сохранить их для последующего использования, если это необходимо.