여러 로직을 처리하다보면 입력값 즉, 학습할 데이터를 넣을때

값이 많은 경우 코드로 입력하기는 힘듭니다.

그래서 파일을 이용하여 학습할 데이터를 넣는 과정을 소개합니다.

(Sung Kim 교수님의 동영상을 참고 했습니다. https://www.youtube.com/watch?v=o2q4QNnoShY)

 

#E1,E2,E3,R
73,80,75,152
93,88,93,185
89,91,90,180
96,98,100,196
73,66,70,142
53,45,55,101

우선 위 내용으로 (학습데이터) csv 파일을 하나 만듭니다.

파일 내용은 아시겠지만 E1,E2,E3 대한 결과값(R)입니다.

testData.csv

만약 실제 코드로 한다면 아래 처럼 지저분해집니다.

x_data = [[73., 80., 75.],
          [93., 88., 93.],
          [89., 91., 90.],
          [96., 98., 100.],
          [73., 66., 70.]]
y_data = [[152.],
          [185.],
          [180.],
          [196.],
          [142.]]

 

먼저 numpy 를 import 합니다. (숫자를 다룰때 사용하는 라이브러리 입니다.)

import numpy as np

numpy 에 loadtxt 라는 함수가 있는데 이 함수가 파일을 읽어오게끔 해줍니다.

xy = np.loadtxt('testData.csv',delimiter=',',dtype=np.float32)

loadtxt(파일이름, 구분자, 타입) 형태가 됩니다.

이제 변수에 데이터를 넣습니다.

x_data = xy[:, 0:-1]

x_data 는 E1,E2,E3 데이터로 위 표현은 0 에서 부터 마지막 -1 값까지(마지막 컬럼?을 제외한 값)만 읽으라는 뜻입니다.

y_data = xy[:, [-1]]

y_data 는 R 값으로 위표현은 마지막 값만을 읽으라는 뜻입니다.

이제 출력해 봅니다.

print(x_data.shape, x_data, len(x_data))
print(y_data.shape, y_data, len(y_data))

위 명령을 수행하면 행렬의 구성, 데이터, 길이 를 출력하게됩니다.

import numpy as np
xy = np.loadtxt('testData.csv',delimiter=',',dtype=np.float32)
x_data = xy[:, 0:-1]
y_data = xy[:, [-1]]
print(x_data.shape, x_data, len(x_data))
print(y_data.shape, y_data, len(y_data))

+ Recent posts