python에서 mat file 변환에 대해 질문드립니다///

조회수 1960회

현재 주피터노트북에서 케라스 및 텐서플로우 등을 이용하여 프로젝트를 수행중입니다.

다름이 아니라

매트랩에서 작성된 데이터 파일(확장자.mat)을 파이썬에서 읽기 쉬운 형태로 변환하고 싶은데요

%pylab inline

import tensorflow as tf
import scipy.io as sio
import time


data = sio.loadmat('Downloads/Session.mat')
print(data)

위와 같은 형식으로 파이썬에서 sio.loadmat 명령어로 매트랩파일을 읽어오고 출력이 가능하게 하는 것까지는 성공했는데요.

출력을 하게 되면 방대한 양의 dictionary 형식의 데이터가 나옵니다.

데이터가 워낙 방대해서 주피터노트북의 출력창으로는 데이터들을 제대로 확인할 수가 없는 상황입니다.

출력하면 출력창에 아래와 같이 나옵니다

{'train_lim_T': array([[0.00000e+00, 1.00002e-04, 2.00004e-04, ..., 4.99980e+00, 4.99990e+00, 5.00000e+00]]), 'train_ext_out_data': array([[ 1, 1, 1, ..., 1, 1, 1], [ 1, 1, 1, ..., 1, 1, 1], [ 1, 1, 1, ..., 1, 1, 1], ..., [ 1, 1, -1, ..., 1, -1, 1], [ 1, 1, -1, ..., -1, -1, 1], [-1, -1, 1, ..., -1, 1, 1]], dtype=int16), 'test_out_data': array([[[-1, -1, 1, ..., 1, 1, -1], [-1, -1, 1, ..., 1, 1, -1], [-1, -1, 1, ..., 1, 1, -1], ..., [-1, -1, 1, ..., 1, 1, -1], [-1, -1, 1, ..., 1, 1, -1], [-1, -1, 1, ..., 1, 1, -1]],

   [[-1,  1, -1, ..., -1,  1,  1],
    [-1,  1, -1, ..., -1,  1,  1],
    [-1,  1, -1, ..., -1,  1,  1],
    ...,
    [-1,  1, -1, ..., -1,  1,  1],
    [-1,  1, -1, ..., -1,  1,  1],
    [-1,  1, -1, ..., -1,  1,  1]],

   [[ 1,  1,  1, ..., -1, -1, -1],
    [ 1,  1,  1, ..., -1, -1, -1],
    [ 1,  1,  1, ..., -1, -1, -1],
    ...,
    [ 1,  1,  1, ..., -1, -1, -1],
    [ 1,  1,  1, ..., -1, -1, -1],
    [ 1,  1,  1, ..., -1, -1, -1]],

   ...,

   [[ 1, -1,  1, ..., -1,  1, -1],
    [ 1,  1,  1, ...,  1,  1, -1],
    [-1, -1, -1, ..., -1, -1, -1],
    ...,
    [ 1, -1, -1, ..., -1,  1,  1],
    [ 1,  1, -1, ..., -1, -1,  1],
    [-1,  1,  1, ...,  1,  1, -1]],

   [[-1,  1,  1, ...,  1, -1, -1],
    [-1, -1,  1, ...,  1,  1, -1],
    [ 1,  1,  1, ...,  1, -1, -1],
    ...,
    [ 1, -1,  1, ..., -1,  1, -1],
    [-1, -1, -1, ..., -1, -1,  1],
    [-1,  1, -1, ..., -1, -1,  1]],

   [[ 1, -1, -1, ..., -1,  1,  1],
    [ 1, -1, -1, ...,  1,  1, -1],
    [ 1, -1,  1, ..., -1, -1, -1],
    ...,
    [-1,  1,  1, ...,  1, -1,  1],
    [-1, -1,  1, ...,  1, -1,  1],
    [ 1,  1, -1, ...,  1, -1, -1]]], dtype=int16), 'train_ext_T': array([[0.00000000e+00, 8.00032001e-05, 1.60006400e-04, ...,
    4.99983999e+00, 4.99992000e+00, 5.00000000e+00]]), '__globals__': [], 'train_ext_out_magn': array([[ 1.        ,  1.        ,  1.        , ..., -0.01555556,
     0.21111111, -0.02444444]]), '__header__': b'MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Thu Oct 11 12:22:22 2018', 'train_lim_in_data': array([[-1, -1, -1, ..., -1, -1, -1],
   [ 1,  1,  1, ...,  1,  1,  1],
   [-1, -1, -1, ..., -1, -1, -1],
   ...,
   [-1, -1,  1, ..., -1,  1,  1],
   [-1, -1,  1, ..., -1, -1,  1],
   [ 1, -1,  1, ..., -1,  1,  1]], dtype=int16), '__version__': '1.0', 'test_T': array([[1.        , 1.02684564, 1.05369128, 1.08053691, 1.10738255,
    1.13422819, 1.16107383, 1.18791946, 1.2147651 , 1.24161074,
    1.26845638, 1.29530201, 1.32214765, 1.34899329, 1.37583893,
    1.40268456, 1.4295302 , 1.45637584, 1.48322148, 1.51006711,
    1.53691275, 1.56375839, 1.59060403, 1.61744966, 1.6442953 ,
    1.67114094, 1.69798658, 1.72483221, 1.75167785, 1.77852349,
    1.80536913, 1.83221477, 1.8590604 , 1.88590604, 1.91275168,
    1.93959732, 1.96644295, 1.99328859, 2.02013423, 2.04697987,
    2.0738255 , 2.10067114, 2.12751678, 2.15436242, 2.18120805,
    2.20805369, 2.23489933, 2.26174497, 2.2885906 , 2.31543624,
    2.34228188, 2.36912752, 2.39597315, 2.42281879, 2.44966443,
    2.47651007, 2.5033557 , 2.53020134, 2.55704698, 2.58389262,
    2.61073826, 2.63758389, 2.66442953, 2.69127517, 2.71812081,
    2.74496644, 2.77181208, 2.79865772, 2.82550336, 2.85234899,
    2.87919463, 2.90604027, 2.93288591, 2.95973154, 2.98657718,
    3.01342282, 3.04026846, 3.06711409, 3.09395973, 3.12080537,
    3.14765101, 3.17449664, 3.20134228, 3.22818792, 3.25503356,
    3.28187919, 3.30872483, 3.33557047, 3.36241611, 3.38926174,
    3.41610738, 3.44295302, 3.46979866, 3.4966443 , 3.52348993,
    3.55033557, 3.57718121, 3.60402685, 3.63087248, 3.65771812,
    3.68456376, 3.7114094 , 3.73825503, 3.76510067, 3.79194631,
    3.81879195, 3.84563758, 3.87248322, 3.89932886, 3.9261745 ,
    3.95302013, 3.97986577, 4.00671141, 4.03355705, 4.06040268,
    4.08724832, 4.11409396, 4.1409396 , 4.16778523, 4.19463087,
    4.22147651, 4.24832215, 4.27516779, 4.30201342, 4.32885906,
    4.3557047 , 4.38255034, 4.40939597, 4.43624161, 4.46308725,
    4.48993289, 4.51677852, 4.54362416, 4.5704698 , 4.59731544,
    4.62416107, 4.65100671, 4.67785235, 4.70469799, 4.73154362,
    4.75838926, 4.7852349 , 4.81208054, 4.83892617, 4.86577181,
    4.89261745, 4.91946309, 4.94630872, 4.97315436, 5.        ]]), 'train_ext_in_magn': array([[-1.        ,  1.        , -1.        , ...,  0.02444444,
     0.        ,  0.08222222]]), 'N': array([[30]], dtype=uint8), 'output_2_ext': array([[0, 1],
   [0, 1],
   [0, 1],
   ...,
   [1, 0],
   [1, 0],
   [1, 0]], dtype=uint8), 'test_in_magn': array([[ 1.        ,  1.        , -1.        , ..., -0.99777778,
    -1.        , -0.99777778],
   [ 1.        ,  1.        ,  1.        , ..., -0.99777778,
     1.        ,  0.99333333],
   [-0.99777778,  1.        ,  1.        , ...,  1.        ,
    -1.        ,  0.99777778],
   ...,
   [-0.01555556, -0.01333333, -0.03333333, ..., -0.00444444,
    -0.00666667, -0.02444444],
   [-0.02888889, -0.02444444,  0.01111111, ...,  0.11333333,
    -0.04      , -0.12222222],
   [ 0.05333333,  0.07333333,  0.04      , ...,  0.01777778,
     0.01777778,  0.00888889]]), 'train_lim_out_magn': array([[-1.        ,  1.        , -1.        , ...,  0.12666667,
     0.05555556, -0.01333333]]), 'output_2_lim': array([[0, 1],
   [0, 1],
   [0, 1],
   ...,
   [1, 0],
   [1, 0],
   [1, 0]], dtype=uint8), 'Tc': array([[2.26918531]]), 'test_out_magn': array([[-0.99777778, -1.        ,  1.        , ...,  1.        ,
     0.99555556, -1.        ],
   [-0.99777778,  1.        , -1.        , ..., -1.        ,
     1.        ,  1.        ],
   [ 1.        ,  0.99555556,  1.        , ..., -0.99777778,
    -1.        , -0.99555556],
   ...,
   [-0.01111111, -0.10888889, -0.01333333, ...,  0.06444444,
     0.06888889,  0.00888889],
   [-0.06444444,  0.        , -0.07555556, ...,  0.08444444,
     0.11555556, -0.02444444],
   [-0.04222222, -0.03111111,  0.04444444, ...,  0.01333333,
     0.04222222,  0.02222222]]), 'train_lim_out_data': array([[-1, -1, -1, ..., -1, -1, -1],
   [ 1,  1,  1, ...,  1,  1,  1],
   [-1, -1, -1, ..., -1, -1, -1],
   ...,
   [ 1, -1,  1, ..., -1,  1, -1],
   [ 1,  1, -1, ..., -1, -1, -1],
   [-1, -1, -1, ...,  1,  1,  1]], dtype=int16), 'train_ext_in_data': array([[-1, -1, -1, ..., -1, -1, -1],
   [ 1,  1,  1, ...,  1,  1,  1],
   [-1, -1, -1, ..., -1, -1, -1],
   ...,
   [-1,  1, -1, ..., -1, -1, -1],
   [-1, -1, -1, ...,  1, -1,  1],
   [-1,  1, -1, ..., -1,  1,  1]], dtype=int16), 'train_lim_in_magn': array([[-1.        ,  1.        , -1.        , ..., -0.03111111,
    -0.11333333, -0.14      ]]), 'test_in_data': array([[[ 1,  1, -1, ..., -1, -1, -1],
    [ 1,  1, -1, ..., -1, -1, -1],
    [ 1,  1, -1, ..., -1, -1, -1],
    ...,
    [ 1,  1, -1, ..., -1, -1, -1],
    [ 1,  1, -1, ..., -1, -1, -1],
    [ 1,  1, -1, ..., -1, -1, -1]],

   [[ 1,  1,  1, ..., -1,  1,  1],
    [ 1,  1,  1, ..., -1,  1,  1],
    [ 1,  1,  1, ..., -1,  1,  1],
    ...,
    [ 1,  1,  1, ..., -1,  1,  1],
    [ 1,  1,  1, ..., -1,  1,  1],
    [ 1,  1,  1, ..., -1,  1,  1]],

   [[-1,  1,  1, ...,  1, -1,  1],
    [-1,  1,  1, ...,  1, -1,  1],
    [-1,  1,  1, ...,  1, -1,  1],
    ...,
    [-1,  1,  1, ...,  1, -1,  1],
    [-1,  1,  1, ...,  1, -1,  1],
    [-1,  1,  1, ...,  1, -1,  1]],

   ...,

   [[-1, -1,  1, ...,  1, -1, -1],
    [ 1,  1,  1, ...,  1, -1, -1],
    [-1, -1,  1, ...,  1, -1,  1],
    ...,
    [ 1,  1, -1, ..., -1, -1, -1],
    [-1,  1,  1, ...,  1, -1, -1],
    [ 1,  1,  1, ..., -1,  1, -1]],

   [[-1,  1, -1, ..., -1, -1, -1],
    [-1, -1, -1, ..., -1, -1,  1],
    [ 1, -1, -1, ...,  1, -1,  1],
    ...,
    [-1,  1,  1, ..., -1,  1, -1],
    [-1,  1,  1, ...,  1, -1,  1],
    [ 1,  1,  1, ...,  1, -1,  1]],

   [[-1,  1,  1, ..., -1,  1,  1],
    [-1, -1, -1, ...,  1,  1, -1],
    [-1,  1,  1, ...,  1,  1, -1],
    ...,
    [ 1,  1,  1, ...,  1, -1, -1],
    [-1,  1, -1, ...,  1, -1, -1],
    [-1,  1,  1, ...,  1,  1, -1]]], dtype=int16)}

출력 부분 보면 아시겠지만, ...으로 대량의 데이터가 생략된게 보입니다..

print(training.shape)
print(output_training.shape)
print(validation.shape)
print(output_validation.shape)

으로 그 크기를 짐작해보면.. (42500, 900) (42500, 2) (7500, 900) (7500, 2) 으로 나옵니다.\

이 방대한 자료들을 알기 쉽게 파이썬에서 리스트 등으로 전환하거나,

혹은 엑셀 등의 파일로 바꾸는 방법이 있을까요??

이 값들을 확인하기 편한 형태로 어떻게든 변환하고 싶습니다.

고수님들의 조언 부탁드려요 //

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)