<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
說到機器學習,大家首先想到的可能就是Python和演演算法了,其實光有Python和演演算法是不夠的,資料才是進行機器學習的前提。
大多數的資料都會儲存在檔案中,要想通過Python呼叫演演算法對資料進行相關學習,首先就要將資料讀入程式中,本文介紹兩種載入資料的方式,在之後的演演算法介紹中,將頻繁使用這兩種方式將資料載入到程式。
下面我們將以Logistic Regression模型載入資料為例,分別對兩種不同的載入資料的方式進行介紹。
def load_file(file_name): ''' 利用open()函數載入檔案 :param file_name: 檔名 :return: 特徵矩陣、標籤矩陣 ''' f = open(file_name) # 開啟訓練資料集所在的檔案 feature = [] # 存放特徵的列表 label = [] #存放標籤的列表 for row in f.readlines(): f_tmp = [] # 存放特徵的中間列表 l_tmp = [] # 存放標籤的中間列表 number = row.strip().split("t") # 按照t分割每行的元素,得到每行特徵和標籤 f_tmp.append(1) # 設定偏置項 for i in range(len(number) - 1): f_tmp.append(float(number[i])) l_tmp.append(float(number[-1])) feature.append(f_tmp) label.append(l_tmp) f.close() # 關閉檔案,很重要的操作 return np.mat(feature), np.mat(label)
def load_file_pd(path, file_name): ''' 利用pandas庫載入檔案 :param path: 檔案路徑 :param file_name: 檔名稱 :return: 特徵矩陣、標籤矩陣 ''' feature = pd.read_csv(path + file_name, delimiter="t", header=None, usecols=[0, 1]) feature.columns = ["a", "b"] feature = feature.reindex(columns=list('cab'), fill_value=1) label = pd.read_csv(path + file_name, delimiter="t", header=None, usecols=[2]) return feature.values, label.values
我們可以使用上述的兩種方法載入部分資料進行測試,資料內容如下:
資料分為三列,前兩列是特徵,最後一列是標籤。
載入資料程式碼如下:
''' 兩種方式載入檔案 ''' import pandas as pd import numpy as np def load_file(file_name): ''' 利用open()函數載入檔案 :param file_name: 檔名 :return: 特徵矩陣、標籤矩陣 ''' f = open(file_name) # 開啟訓練資料集所在的檔案 feature = [] # 存放特徵的列表 label = [] #存放標籤的列表 for row in f.readlines(): f_tmp = [] # 存放特徵的中間列表 l_tmp = [] # 存放標籤的中間列表 number = row.strip().split("t") # 按照t分割每行的元素,得到每行特徵和標籤 f_tmp.append(1) # 設定偏置項 for i in range(len(number) - 1): f_tmp.append(float(number[i])) l_tmp.append(float(number[-1])) feature.append(f_tmp) label.append(l_tmp) f.close() # 關閉檔案,很重要的操作 return np.mat(feature), np.mat(label) def load_file_pd(path, file_name): ''' 利用pandas庫載入檔案 :param path: 檔案路徑 :param file_name: 檔名稱 :return: 特徵矩陣、標籤矩陣 ''' feature = pd.read_csv(path + file_name, delimiter="t", header=None, usecols=[0, 1]) feature.columns = ["a", "b"] feature = feature.reindex(columns=list('cab'), fill_value=1) label = pd.read_csv(path + file_name, delimiter="t", header=None, usecols=[2]) return feature.values, label.values if __name__ == "__main__": path = "C://Users//Machenike//Desktop//xzw//" feature, label = load_file(path + "test.txt") feature_pd, label_pd = load_file_pd(path, "test.txt") print(feature) print(feature_pd) print(label) print(label_pd)
測試結果:
[[ 1. 1.43481273 4.54377111]
[ 1. 5.80444603 7.72222239]
[ 1. 2.89737803 4.84582798]
[ 1. 3.48896827 9.42538199]
[ 1. 7.98990181 9.38748992]
[ 1. 6.07911968 7.81580716]
[ 1. 8.54988938 9.83106546]
[ 1. 1.86253147 3.64519173]
[ 1. 5.09264649 7.16456405]
[ 1. 0.64048734 2.96504627]
[ 1. 0.44568267 7.27017831]]
[[ 1. 1.43481273 4.54377111]
[ 1. 5.80444603 7.72222239]
[ 1. 2.89737803 4.84582798]
[ 1. 3.48896827 9.42538199]
[ 1. 7.98990181 9.38748992]
[ 1. 6.07911968 7.81580716]
[ 1. 8.54988938 9.83106546]
[ 1. 1.86253147 3.64519173]
[ 1. 5.09264649 7.16456405]
[ 1. 0.64048734 2.96504627]
[ 1. 0.44568267 7.27017831]]
[[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]]
[[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]]
從測試結果來看可知兩種載入資料的方法得到的資料結果是一樣的,故兩種方法均適用於載入資料。
注意:
此處是以Logistic Regression模型載入資料為例,資料與資料本身或許會有差異,但載入資料的方式都是大同小異的,要靈活變通。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45