go語言機器學習第一章讀書筆記

2021-10-08 04:23:37 字數 2681 閱讀 9231

資料的收集與組織(例題中的**鏈結)

1.使用go語言進行資料組織與處理的好處:

保證資料結果的完整性

利用共go語言的靜態型別和明確的錯誤處理方式,確保資料的解析和期望的一致

1.2go語言收集和組織資料的最佳實踐

1.檢查並強制指定期望型別

2.標準化和簡化資料輸入/輸出

3.資料的版本控制

1.3讀取csv檔案的方式

1.使用encoding包中的csv庫函式來讀取

2.使用第三方包 github.com/kniren/gota/dataframe 來讀取

type csvrecord struct

func main()

defer f.close()

// 讀取檔案

/* 如果fieldsperrecord大於0,read方法要求每條記錄都有給定數目的字段。

如果fieldsperrecord等於0,read方法會將其設為第一條記錄的字段數,因此其餘的記錄必須有同樣數目的字段。

如果fieldsperrecord小於0,不會檢查字段數,允許記錄有不同數量的字段。

*/reader := csv.newreader(f)

reader.fieldsperrecord = 5

// 讀取所有的資料

// rawcsvdata, err := reader.readall()

// if err != nil

// 保證正確性

// var rawcsvdata string

// 定義切片陣列 用來儲存物件

var csvdata csvrecord

for

// 定義接收資料的物件

var csvrecord csvrecord

// 便利或缺每一行記錄中的的各個域的值

for idx, value := range record

csvrecord.speices = value

continue

} var floatvalue float64

if floatvalue, err = strconv.parsefloat(value, 64); err != nil

switch idx

} if csvrecord.parseerror == nil

}for _, v := range csvdata

注意:使用第三種方式需要將第三方包中的檔案go get獲取 或者手動獲取

獲取位址是 "gonum.org/v1/gonum/stat"

3.資料可以讀取後存入陣列切片中 也可以新建結構體 儲存到結構體中

1.3.1用資料幀操作csv資料

1.使用第三方包dataframe來建立資料幀

優勢:資料幀和相應功能非常適合**資料集合的過濾、求子集和資料部分選擇。

func main()

defer irisfile.close()

irisdf := dataframe.readcsv(irisfile)

fmt.println(irisdf)

filter := dataframe.f

versicolordf := irisdf.filter(filter)

if versicolordf.err != nil

1.4操作json資料

net包定位頁面資料 ioutil包讀取和儲存資料,json包反序列化與序列化轉化資料的格式

// 匯入資料的路徑

const citibikeurl = 「

// json資料的格式轉換

type stationdata structjson:"data"

}type station struct

func main()

defer response.body.close()

// 將**中的資料格式轉換

body, err := ioutil.readall(response.body)

if err != nil

// 宣告例項儲存資料

var sd stationdata

// 反序列化

if err := json.unmarshal(body, &sd); err != nil

fmt.printf("%+v\n\n", sd.data.stations[1])

// 反序列化後將資料存入

outputdata, err := json.marshal(&sd)

if err != nil

// 將資料儲存到本地

第一章讀書筆記

本章內容主要講的是android系統移植和驅動開發概述,通過本章的學習知道了學習linux驅動程式設計一定要了解linux驅動只與linux核心有關,與客戶的使用的linux系統無關。也就是說,不管是那個linux系統,只要使用了同樣的linux核心,驅動就可以通過。唯一可以判斷的linux核心是否...

第一章讀書筆記

android的系統架構分為4層 第一層 linux核心。第二層 c c 庫。第三層 android。第四層 應用程式。android移植可兩個部分 應用移植和系統移植。目前linux核心主要維護3個版本 linux2.4,linux2.6和linux3.x,大多數linux系統都使用了這3個版本的...

第一章讀書筆記

若給android增加新的驅動,則hal也要做出相應修改。不同的linux版本的驅動程式並無法通用,那麼通過判斷linux核心版本號是否相同,可以檢驗驅動是否可以通用。目前最廣泛的核心版本應該是linux2.6。電腦或者手機等不同硬體裝置越來越豐富,則需要更多的linux裝置驅動來完成硬體裝置間的互...