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) 으로 나옵니다.\
이 방대한 자료들을 알기 쉽게 파이썬에서 리스트 등으로 전환하거나,
혹은 엑셀 등의 파일로 바꾸는 방법이 있을까요??
이 값들을 확인하기 편한 형태로 어떻게든 변환하고 싶습니다.
고수님들의 조언 부탁드려요 //
댓글 입력