1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数据预处理:读取文件数据 并存为python数组

数据预处理:读取文件数据 并存为python数组

时间:2019-12-19 01:25:09

相关推荐

数据预处理:读取文件数据 并存为python数组

文件的简单读取

# 定义一个将文件中的数据转化为数组的类import numpy as npclass 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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。