机器学习实战 一书中第20页数据预处理,从文本中解析数据的程序。
 import numpy as np
def dataPreProcessing(fileName):
with open(fileName) as op:
lines=op.readlines()
# 返回值是list
lineNumer=len(lines)
# list长度即文件中的行数
dataMatrix=np.zeros((lineNumer,3))
# 初始化lineNumer行,3列的全0矩阵,注意双层括号
labelVector=[]
# 标记向量初始化,它在目前是一个空的list
index=0
# 索引,为了后面给数据矩阵和标记向量初始化用的
for line in lines:
line=line.strip()
# 去空格
temp=line.split('\t')
# 按换行符分割数据,返回list
dataMatrix[index,:]=temp[0:3]
# 切片操作,dataMatrix[a,b:c]后的方括号中第一个值表示矩阵行号(从0开始)
# 第二、三个参数代表从b开始,c结束,前开后闭,包含b不包含c的元素
# temp中的两个参数同理
# 将temp中的前3个值赋给dataMatrix
labelVector.append(int(temp[-1]))
# 将temp中的最后一个值赋给labelVector,注意强转类型,不强转取到的类型为string
index=index+1
return dataMatrix,labelVector
# arr=np.array([[0,1,2],[3,4,5],[6,7,8]])
# print(arr[2,:])
fileName='./datingTestSet2.txt'
# “/”:表示根目录,在windows系统下表示某个盘的根目录,如“E:\”;
# “./”:表示当前目录;(表示当前目录时,也可以去掉“./”,直接写文件名或者下级目录)
# “../”:表示上级目录。
a,b=dataPreProcessing(fileName)
print(a,b)

附:今晚很郁闷,pycharm启动慢得要死,Numpy又用不了,好不容易才用清华镜像把numpy升级到可用状态,期间pycharm卡死了好几次,ukylin的虚拟机更卡,气得我想把电脑砸了,以后有替代的ide了再也不用pycharm了

---------------------------------------------------------------------------------------
2020-02-15更新
读取txt文件中的数据
testArray=genfromtxt(fileName,delimiter="\t",dtype=str)
# 文件名、分隔符、读取的数据以什么类型返回
# print('testArray=\n',testArray)
# print(testArray.shape)
# print(testArray.dtype)
testLabels=testArray[:,3]
testLabels=testLabels.astype(int)
# 矩阵切片,取出所有行第3列,其中:表示所有行
print('testLabels\n',testLabels)
print(testLabels.shape)
testInfo=testArray[:,0:3]
# 读取每一行的前3列,这里的0:3是左闭右开区间
testInfo=testInfo.astype(float)
print('testInfo:\n',testInfo)

  今晚又重温了 “唐宇迪\1章Python科学计算库—numpy”课程系列中的 05-07三节内容,其中《课时07.Numpy矩阵基础》只看到了3'12''

python数据预处理for knn的更多相关文章

  1. Python数据预处理:机器学习、人工智能通用技术(1)

    Python数据预处理:机器学习.人工智能通用技术 白宁超  2018年12月24日17:28:26 摘要:大数据技术与我们日常生活越来越紧密,要做大数据,首要解决数据问题.原始数据存在大量不完整.不 ...

  2. python data analysis | python数据预处理(基于scikit-learn模块)

    原文:http://www.jianshu.com/p/94516a58314d Dataset transformations| 数据转换 Combining estimators|组合学习器 Fe ...

  3. Python数据预处理—归一化,标准化,正则化

    关于数据预处理的几个概念 归一化 (Normalization): 属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现. 常用的 ...

  4. Python数据预处理之清及

    使用Pandas进行数据预处理 数据清洗中不是每一步都是必须的,按实际需求操作. 内容目录 1.数据的生成与导入 2.数据信息查看 2.1.查看整体数据信息 2.2.查看数据维度.列名称.数据格式 2 ...

  5. Python数据预处理(sklearn.preprocessing)—归一化(MinMaxScaler),标准化(StandardScaler),正则化(Normalizer, normalize)

      关于数据预处理的几个概念 归一化 (Normalization): 属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现. 常 ...

  6. python数据预处理和特性选择后列的映射

    我们在用python进行机器学习建模时,首先需要对数据进行预处理然后进行特征工程,在这些过程中,数据的格式可能会发生变化,前几天我遇到过的问题就是: 对数据进行标准化.归一化.方差过滤的时候数据都从D ...

  7. Python数据预处理:使用Dask和Numba并行化加速

    如果你善于使用Pandas变换数据.创建特征以及清洗数据等,那么你就能够轻松地使用Dask和Numba并行加速你的工作.单纯从速度上比较,Dask完胜Python,而Numba打败Dask,那么Num ...

  8. Python数据预处理—训练集和测试集数据划分

    使用sklearn中的函数可以很方便的将数据划分为trainset 和 testset 该函数为sklearn.cross_validation.train_test_split,用法如下: > ...

  9. 关系网络数据可视化:2. Python数据预处理

    将数据中导演与演员的关系整理出来,得到导演与演员的关系数据,并统计合作次数 import numpy as np import pandas as pd import matplotlib.pyplo ...

随机推荐

  1. GDI+3

    关于这个的例子其实网上已经有这方面的资料了,但是为了文章的完整性,还是觉得有必要讲解.我们先来看一下效果:     ( 图2 )接下来看看这是如何做到的. 思路:聊天窗体上有一个截图按钮,点击按钮后, ...

  2. Python MySQL 删除表

    章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...

  3. POJ - 1321 棋盘问题(简单搜索)

    题意:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方 ...

  4. Dubbo与SpringCloud

    dubbo和springcloud都是微服务框架,各自有各自的注册中心. dubbo监控中心:zookeeper,redis 提供高性能和透明化的RPC远程调用方案,SOA服务治理方案. 核心部分: ...

  5. VM15上安装macOS操作系统

    (该篇博客已经成功安装上Xcode,放心下载) 因为要开学了,需要学习mac操作系统,自己没有苹果电脑只能虚拟机上下载喽 我在电脑上安装的VM15虚拟机,不会安装的可以来这里下载软件VM15虚拟机   ...

  6. Java8大排序算法

    一.冒泡排序 基本思想:通过对待排序序列此前向后,依次比较相邻元素的值,若发现逆序则进行交换,使得较大的值从前面移动到后面,       类似于水下的气泡一样(是所有排序算法中效率最低的) publi ...

  7. JS下拉框联动

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Short Essay你真的会写了吗?

    提到short essay(可能其他essay也一样),很多同学都很头疼.“没有思路?不知从何下笔?没有亮点?”等等,这些都是同学们的致命伤,因此,short essay就成为了广大留学生的“送命题” ...

  9. 设置Apache(httpd)和Nginx 开机自启动

     方法1: 进入目录: vi  /etc/rc.d/rc.local #设置apache 和 nginx 开机自启动/usr/sbin/apachectl start/usr/sbin/nginx s ...

  10. 1.6判断类型toString.call()

    之前我都是使用typeof,后来发现它的判断有局限,例如(){}obeject.p.toString.call()解决了 obj.toString()的结果和Object.prototype.toSt ...