Machine Learning
[Machine Learning With Go] 1장 데이터 수집 및 구성
namho46
2021. 1. 5. 04:27
*본 문서는 "Machince Learning with Go, Go를 활용한 머신러닝, Go 프로그래밍 언어를 사용해 회귀분석, 분류, 클러스터링, 시계열 모델, 신경망 및 딥러닝 구현하기" 다니엘 화이트낵 지음, 장세윤 옮길, 에이콘 출판 서적을 참고하여 작성 되었습니다.
Machince Learning With Go
1장. 데이터 수집 및 구성
CSV 파일
- Go 에서 csv 파일을 구문 분석하는 데 주로 사용할 패키지는 다음과 같음
- (표준 라이브러리) encoding/csv
- gitHub.com/kniren/gota/dataframe
- go-hep.org/x/hep/csvutil
파일에서 CSV 데이터 읽기
package lecture1
import (
"encoding/csv"
"fmt"
"io"
"os"
"testing"
"github.com/stretchr/testify/require"
)
func Test_CSV_ReadAll(t *testing.T) {
f, err := os.Open("../../data/iris.csv")
require.NoError(t, err)
defer f.Close()
reader := csv.NewReader(f)
require.NotNil(t, reader)
reader.FieldsPerRecord = -1
rawCSVData, err := reader.ReadAll()
require.NoError(t, err)
fmt.Printf("iris.csv data read...\n")
for _, row := range rawCSVData {
for _, col := range row {
fmt.Printf("%s ", col)
}
fmt.Printf("\n")
}
}
func Test_CSV_Read_LineByLine(t *testing.T) {
f, err := os.Open("../../data/iris.csv")
require.NoError(t, err)
defer f.Close()
reader := csv.NewReader(f)
require.NotNil(t, reader)
reader.FieldsPerRecord = -1
var rawCSVData [][]string
for {
record, err := reader.Read()
if err == io.EOF {
break
}
rawCSVData = append(rawCSVData, record)
}
fmt.Printf("iris.csv data read...\n")
for _, row := range rawCSVData {
for _, col := range row {
fmt.Printf("%s ", col)
}
fmt.Printf("\n")
}
}