背景信息

在使用Python进行机器学习时,经常需要自己完成数据的预处理,本节主要实现对txt文本数据的读取,该文本满足如下要求:

  • 每行为一条样本数据,包括特征值与标签,标签在最后
  • 样本数据的特征值之间以及标签之间使用,分割
  • 文本末尾无空行(在人为编辑过程中很容易在末尾加入空行,要检查并删除)

本文先给出实现代码,最后以Iris数据集为例说明如何使用。

代码实现

# 引入所需包
import numpy as np
import random
#读取数据函数,输入为数据文件名和训练、测试切分比率,返回为list类型的训练数据集和测试数据集
def loadData(fileName,ratio):   trainingData=[]testData=[]with open(fileName) as txtData:lines=txtData.readlines()for line in lines:lineData=line.strip().split(',')    #去除空白和逗号“,”if random.random()<ratio:             #数据集分割比例trainingData.append(lineData)   #训练数据集列表else:testData.append(lineData)       #测试数据集列表return trainingData,testData
#输入为list类型数据,分割为特征和标签两部分,返回为np.narray类型的特征数组和标签数组
def splitData(dataSet):  character=[]label=[]for i in range(len(dataSet)):character.append([float(tk) for tk in dataSet[i][:-1]])label.append(dataSet[i][-1])return np.array(character),np.array(label)

使用样例

  • 使用的数据集:Iris数据集,样例如下所示:
4.8,3.0,1.4,0.3,Iris-setosa
5.1,3.8,1.6,0.2,Iris-setosa
4.6,3.2,1.4,0.2,Iris-setosa
5.3,3.7,1.5,0.2,Iris-setosa
5.0,3.3,1.4,0.2,Iris-setosa
7.0,3.2,4.7,1.4,Iris-versicolor
6.4,3.2,4.5,1.5,Iris-versicolor
6.9,3.1,4.9,1.5,Iris-versicolor
5.5,2.3,4.0,1.3,Iris-versicolor
6.5,2.8,4.6,1.5,Iris-versicolor
  • 测试代码
iris_file='/book/iris.data'
ratio=0.7
trainingData, testData=loadData(iris_file,ratio) ##加载文件,按一定比率切分为训练样本和测试样本
trainingCharacter,trainingLabel=splitData(trainingData)  #将训练样本切分为数据和标签两个数组
testCharacter,testLabel=splitData(testData)  #将测试样本切分为数据和标签两个数组

Python机器学习数据预处理:读取txt数据文件并切分为训练和测试数据集相关推荐

  1. .net 从txt中读取行数据_Python读取txt数据并绘图

    本程序实现从txt文件中读取两列数据,然后进行三次样条插值,绘制出一条平滑的曲线. 需要解决的一些问题: 切片方法: x = a[:,0] # 取第一列数据 y = a[:,1] # 取第二列数据 另 ...

  2. Python 基于Python从mysql表读取千万数据实践

    基于Python 从mysql表读取千万数据实践   by:授客 QQ:1033553122 场景:   有以下两个表,两者都有一个表字段,名为waybill_no,我们需要从tl_waybill_b ...

  3. C++读取txt数据为二维数组 将数据保存到txt文本中

      C++读取txt数据为二维数组 保存txt文本数据     C++文件读写操作有:ofstream,ifstream,fstream: #include <fstream> ofstr ...

  4. PyTorch主要组成模块 | 数据读入 | 数据预处理 | 模型构建 | 模型初始化 | 损失函数 | 优化器 | 训练与评估

    文章目录 一.深度学习任务框架 二.数据读入 三.数据预处理模块-transforms 1.数据预处理transforms模块机制 2.二十二种transforms数据预处理方法 1.裁剪 2. 翻转 ...

  5. C#读取txt日志文件

    C#读取txt日志文件 C#读取txt日志文件 由于公司实际业务需要,需要读取机器设备的生产日志文件的数据,用于数据分析.因此记录一下数据读取及初步的字符切割并写入数据库. 日志文件数据如下图: 效果 ...

  6. matlab读取txt/excel文件并画图的方法

    matlab读取txt/excel文件为矩阵,并进行画图的方法 1. matlab准备 如果没有matlab的话,只需要到学校网站上下载,按照步骤就可以安装.THU的下载地址如下: THU matla ...

  7. C语言在读取txt类型文件中的汉字字符串出现乱码的解决办法

    题目 C语言在读取txt类型文件中的汉字字符串出现乱码的解决办法 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步.--来自考研路上的lwj 一.前言 当我们在练习文件这一章节时,因为需 ...

  8. Kettle 列转行的使用 - 适用于查询表数据和读取Excel数据

    Kettle 列转行的使用 - 适用于查询表数据和读取Excel数据 场景一 表数据进行列转行再导出 (1)一个简单的Kettle 列转行的示例如下: (2)步骤一的数据如下: (3)步骤二" ...

  9. ML之R:通过数据预处理利用LiR/XGBoost等(特征重要性/交叉训练曲线可视化/线性和非线性算法对比/三种模型调参/三种模型融合)实现二手汽车产品交易价格回归预测之详细攻略

    ML之R:通过数据预处理利用LiR/XGBoost等(特征重要性/交叉训练曲线可视化/线性和非线性算法对比/三种模型调参/三种模型融合)实现二手汽车产品交易价格回归预测之详细攻略 目录 三.模型训练 ...

最新文章

  1. Spring MVC 过时了吗?
  2. 程序员看过来!JS、Java、C 依然强势,Go、Kotlin、Python 潜力股,2020 开发者生态系统报告
  3. 服务器通过光纤模块挂载存储服务器
  4. Java 洛谷 P1219 八皇后
  5. boost::sort模块实现spreadsort 浮点函子排序示例
  6. 「SVN」Linux下svn使用命令
  7. Linux文件系统与日志
  8. 与 OpenCV 1 同时使用
  9. AngularJS XMLHttpRequest
  10. 深度学习:transformer模型
  11. catia如何将曲面加厚变为实体_?在CATIA中快速画一个大众车标
  12. my ReadBook_dianzishangwu / 2020216 / dianzishangwuwuliu
  13. 网易计费系统架构升级之路
  14. xingtai -斗罗大陆图片下载
  15. BUFF67 DM蓝牙5.2双模热插拔PCB
  16. 一个表情包引发的悬案!
  17. Qt编写的开源帖子集合(懒人专用)
  18. mysql 内部 临时表_MySQL内部临时表策略 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  19. 知否:高增长时代已过,汽车互联网玩家如何开拓更多增量?
  20. 游戏测试从零开始[知识贴]

热门文章

  1. python学习——matplotlib库——条形图(横版和竖版)
  2. 开机动画适配方案_小米CC开机动画首曝光:7月2日在北京水立方发布
  3. html写弹出告警状态,基于日志报警插件 elastalert 实现告警(示例代码)
  4. 前端的搬运仓库github
  5. openwrt+php+not+found,openwrt路由翻车,等高手
  6. python建立FTP服务器
  7. 机器学习从入门到进阶✅
  8. (C语言)2066 分组统计
  9. 模式识别中常见概率符号公式的学习笔记 By Youki~
  10. [Ubuntu16.04]Anaconda下运行jupyter notebook出现Running as root is not recommended.