Как эффективно проанализировать файл .mat и получить разные его части как атрибуты класса? - PullRequest
0 голосов
/ 03 мая 2019

Я работаю со сценарием, который будет использовать модуль scipy.io для загрузки файла .mat из matlab и получения соответствующей информации из данных, чтобы, в конечном итоге, вывести электронную таблицу в стандартизированном формате.

Затем, мой первый шаг - настроить класс, который откроет файл и получит все необходимые данные, чтобы я мог затем передать экземпляр другому классу / функции для генерации выходного файла.

Сейчас я подхожу к коду, назначая по одному атрибуту за раз, но я хотел бы знать, есть ли лучший способ сделать это без необходимости хранить все данные в экземпляре или открывать файл несколько раз .

class Logfile():
    """
    Class to hold the logfile object. It will open and 
    parse the original .mat file, keeping the relevant info
    as attributes
    """

    def __init__(self, path: str):
        self.path = path

    def initialize(self) -> np.array:
        data_struct = scipy.io.loadmat(self.path)['Data']
        return data_struct

    @property
    def subject_id(self):
        struct = self.initialize()
        subject_array = struct['SubjectID']
        sub_id = subject_array[0][0][0]
        return sub_id

Для простоты пример кода показывает только один атрибут, но было бы еще 3 или 4 атрибута, которые необходимо взять из разных частей структуры data_structure, предоставляемой функцией loadmat. Есть ли более эффективный способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...