학교때 많이 쓰던 matlab 프로그램은 라이센스가 필요하기 때문에 학교나 기관에서만 사용이 가능하다.(비쌈)
요즘은 데이터 다루는데 파이썬을 많이 쓰지만 예전에 만들어진 데이터셋 같은 경우 매틀랩 포멧(.mat) 이 종종 있기 땜누에 파일을 열때 난감 할 수 있다. 하지만!
오직 한 줄 코드로 불러올 수 있다.
아래 예시는 유투브 포즈 데이터셋의 라벨(annotation)을 읽기 위한 코드이다.
scipy 를 불러오고 loadmat 함수를 사용한다.
from scipy import io
mat_file = io.loadmat('./YouTube_Pose_dataset_1.0/YouTube_Pose_dataset.mat')
각자 파이썬 파일과 데이터셋(.mat) 이 다른 위치에 있을 경우가 대부분이므로 폴더 이동하는 방법도 같이 언급하면,
필자의 경우
++
Folder 1(폴더임)
ㄴ YouTube_Pose_dataset_1.0(폴더임)
ㄴ YouTube_Pose_dataset.mat(매틀랩파일)
ㄴ Py2Mat.py (파이썬 구동 파일)
++
결과적으로, Py2Mat.py파이썬 파일을 열어서 YouTube_Pose_dataset.mat(매틀랩파일)을 열어보겠다.
이때 쓰이는 개념이 절대경로인데, Py2Mat.py 구동파일을 기점으로 ./ 을 입력하고 폴더의 흐름을 적어주면 되겟다.
./ 의 의미는 -> 방향으로 폴더를 타고 들어가겠다는 의미.
아래 그림에서 In [2] 를 보면 불러오는 코드가 정상적으로 실행되었고(오류안나면 잘 된거)
실제로 잘 불러왔는지 보려면 mat_file 을 실행시켜주자(In [3])
복잡한 테이블이지만.,, 키값(key)를 뽑아보려면 mat_file.keys() 를 통해 확인할 수 있다.
그 다음, key값 중 마지막 'data'값만 보고싶다 하면 .get()함수를 쓴다.
그 다음, data 안에서 세부적으로 파고들어가고 싶다면 인덱스를 활용한다.
예를들면
자료A = array([ a, a, a, a, a, a], [ b, b, b, b, b, b], [ c, c, c, c, c, c])
이렇게 3개의 뭉치로 되어있는 자료를 앞부터 [0], [1], [2] 인덱스로 표현할 수 있다.
- 자료A[0] = [ a, a, a, a, a, a]
- 자료A[1] = [ b, b, b, b, b, b]
- 자료A[2] = [ c, c, c, c, c, c]
아래 이미지를 보면 data_frame은 수백가지 데이터로 구성되어있는데,
맨 처음 뭉치 값만 보기 위해 [0][0]으로 세부적으로 타고 들어갔다.
즉, 복잡한 구조의 데이터 프레임을 다루는데 인덱스를 적극 활용하면 된다. 하나하나씩 까보는 거다.
끝.
'Python_basic' 카테고리의 다른 글
파이썬으로 도표 그리기(Matplotlib 사용) 만능검색방법 소개! (0) | 2020.03.02 |
---|---|
tip)파이썬으로 엑셀 다루기 (Python Excel handling) (0) | 2020.02.28 |
python glob함수로 리스트 정렬하기(이미지파일 제목 정렬) (0) | 2020.02.21 |
Tips)케라스(Keras) 학습 완료된 모델 저장 후 재사용을 위한 기본 코드 (그대로 복붙해서 사용가능) (0) | 2020.02.17 |
윈도우10(windows 10)에서 Pytorch 설치하고 GPU사용하기 (0) | 2019.10.03 |
댓글