728x90
728x170

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

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

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

(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))
728x90
그리드형
Posted by kjun.kr
,