whosmat#
- scipy.io.whosmat(имя_файла, appendmat=True, **kwargs)[источник]#
Перечислите переменные внутри файла MATLAB.
- Параметры:
- имя_файлаstr
Имя mat-файла (расширение .mat не требуется, если appendmat==True) Также можно передать открытый файлоподобный объект.
- appendmatbool, необязательно
True для добавления расширения .mat к имени файла, если оно ещё не присутствует. По умолчанию True.
- byte_orderstr или None, опционально
None по умолчанию, что подразумевает угадывание порядка байтов из mat-файла. В противном случае может быть одним из ('native', '=', 'little', '<', 'BIG', '>').
- mat_dtypebool, необязательно
Если True, возвращать массивы в том же типе данных, как если бы они загружались в MATLAB (вместо типа данных, с которым они сохранены).
- squeeze_mebool, необязательно
Сжимать ли единичные матричные размерности или нет.
- chars_as_stringsbool, необязательно
Преобразовывать ли символьные массивы в строковые массивы.
- matlab_compatiblebool, необязательно
Возвращает матрицы, как если бы они были загружены MATLAB (подразумевает squeeze_me=False, chars_as_strings=False, mat_dtype=True, struct_as_record=True).
- struct_as_recordbool, необязательно
Загружать ли MATLAB-структуры как массивы записей NumPy или как массивы NumPy старого стиля с dtype=object. Установка этого флага в False воспроизводит поведение SciPy версии 0.7.x (возвращая объектные массивы numpy). Значение по умолчанию - True, так как это позволяет более простую загрузку и сохранение MATLAB-файлов.
- Возвращает:
- переменныесписок кортежей
Список кортежей, где каждый кортеж содержит имя матрицы (строка), её форму (кортеж целых чисел) и класс данных (строка). Возможные классы данных: int8, uint8, int16, uint16, int32, uint32, int64, uint64, single, double, cell, struct, object, char, sparse, function, opaque, logical, unknown.
Примечания
Поддерживаются mat-файлы версий v4 (Level 1.0), v6 и v7 до 7.2.
Вам потребуется библиотека HDF5 для Python, чтобы читать файлы mat формата MATLAB 7.3 (например, h5py). Поскольку SciPy не предоставляет такую библиотеку, мы не реализуем интерфейс HDF5 / 7.3 здесь.
Добавлено в версии 0.12.0.
Примеры
>>> from io import BytesIO >>> import numpy as np >>> from scipy.io import savemat, whosmat
Создать несколько массивов и использовать
savematдля записи их вBytesIOэкземпляр.>>> a = np.array([[10, 20, 30], [11, 21, 31]], dtype=np.int32) >>> b = np.geomspace(1, 10, 5) >>> f = BytesIO() >>> savemat(f, {'a': a, 'b': b})
Используйте
whosmatдля проверкиf. Каждый кортеж в выходном списке содержит имя, форму и тип данных массива вf.>>> whosmat(f) [('a', (2, 3), 'int32'), ('b', (1, 5), 'double')]