数据预处理:读取文件数据,并存为python数组
生活随笔
收集整理的這篇文章主要介紹了
数据预处理:读取文件数据,并存为python数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文件的簡單讀取
# 定義一個將文件中的數據轉化為數組的類 import numpy as np class DataUtil: # ============================================================================= # 從文件中讀取數據 # 5個參數:數據集的名稱,數據集的路徑,訓練樣本數,類別所在列,是否打亂數據 # =============================================================================def get_dataset(name,path,train_num=None,tar_index=None,shuffle=True):x =[]# 將編碼設置為utf-8with open(path,"r",encoding="utf-8") as file:# 如果是氣球數據集的話,使用逗號分割數據if "balloon" in name:# 文件讀取是一行一行讀取的for sample in file:# 一行數據就是一個數組,strip()去空格,split(",")以逗號分隔x.append(sample.strip().split(","))# 默認打亂數據if shuffle:np.random.shuffle(x)# 默認類別在最后一列tar_index = -1 if tar_index is None else tar_indexy = np.array([xx.pop(tar_index) for xx in x])x = np.array(x)# 默認是全部訓練樣本if train_num is None:return x,y# 若傳入了訓練樣本樹,則分為訓練集和測試集return (x[:train_num],y[:train_num]),(x[train_num:],y[train_num:])測試:
原始數據:
黃色,小,成人,用手打,不爆炸 黃色,小,成人,用腳踩,爆炸 黃色,小,小孩,用手打,不爆炸 黃色,小,小孩,用腳踩,不爆炸 黃色,大,成人,用手打,爆炸 黃色,大,成人,用腳踩,爆炸 黃色,大,小孩,用手打,不爆炸 黃色,大,小孩,用腳踩,爆炸 紫色,小,成人,用手打,不爆炸 紫色,小,小孩,用手打,不爆炸 紫色,大,成人,用腳踩,爆炸 紫色,大,小孩,用腳踩,爆炸測試結果
_x,_y = DataUtil.get_dataset("balloon1.0","_Data/balloon1.0.txt") print(_x) print(_y) runfile('D:/share/test/Util.py', wdir='D:/share/test') [['黃色' '大' '成人' '用腳踩']['黃色' '小' '小孩' '用手打']['黃色' '小' '成人' '用手打']['紫色' '小' '成人' '用手打']['紫色' '小' '小孩' '用手打']['紫色' '大' '小孩' '用腳踩']['紫色' '大' '成人' '用腳踩']['黃色' '小' '成人' '用腳踩']['黃色' '小' '小孩' '用腳踩']['黃色' '大' '成人' '用手打']['黃色' '大' '小孩' '用手打']['黃色' '大' '小孩' '用腳踩']] ['爆炸' '不爆炸' '不爆炸' '不爆炸' '不爆炸' '爆炸' '爆炸' '爆炸' '不爆炸' '爆炸' '不爆炸' '爆炸']另外一種:
def loadDataSet(fileName):"""加載數據集:param fileName::return:"""dataMat = []; labelMat = []fr = open(fileName)for line in fr.readlines():lineArr = line.strip().split('\t')dataMat.append([float(lineArr[0]), float(lineArr[1])])labelMat.append(float(lineArr[2]))return dataMat,labelMat總結
以上是生活随笔為你收集整理的数据预处理:读取文件数据,并存为python数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据预处理:原始数据集快速分类的方法,n
- 下一篇: websocket python爬虫_p