knn约会实例1
2018-04-02 本文已影响21人
日月一人
2018-04-02
准备数据:从文本文件中解析数据
来源:https://blog.csdn.net/u013457382/article/details/50937577
![](https://img.haomeiwen.com/i10552077/647a739b82e66587.png)
分解代码 了解Python语法和函数
1、打开文件
文件打开前需将其放在默认文件夹,使用open(filename)将其打开且后面的"r"可省略。
(1)先使用f.read()全部读入,内含制表符和换行符。
![](https://img.haomeiwen.com/i10552077/92cca11752a5038c.png)
(2)再尝试使用f.readline()读入一行语句,成功读入一行内容,但是其中仍然含有制表符和换行符。
![](https://img.haomeiwen.com/i10552077/ca00bac9b9786e2b.png)
(3)最后尝试使用f.readlines()读入所有行语句,成功读入所有行内容,以上三种均含有制表符和换行符,后续使用语句去除。
![](https://img.haomeiwen.com/i10552077/0601cfbe857d78af.png)
使用len()函数获取其读入的行数。
![](https://img.haomeiwen.com/i10552077/92dde8948c926d9f.png)
2、创建矩阵和修改内容
(1)使用numpy库中的zeros()函数创建1000行3列的矩阵。
![](https://img.haomeiwen.com/i10552077/c5a0764fe8fbee62.png)
(2)line=line.strip()移除字符串头尾指定字符(默认空格)。
![](https://img.haomeiwen.com/i10552077/9cb830be3190a8ca.png)
![](https://img.haomeiwen.com/i10552077/b2f86c9cfaec6dd7.png)
(3)移除制表符line.split("\t") 默认移除所有的方法尝试失败,后续可以再次尝试。
![](https://img.haomeiwen.com/i10552077/0324317cc7bc6070.png)
![](https://img.haomeiwen.com/i10552077/2eaaa6162fce39ad.png)
(4)将分割后字符串的前三个元素放入前面创建的0矩阵。
![](https://img.haomeiwen.com/i10552077/6d0adc7c30dde195.png)
将最后一列特征元素放置在规定矩阵中。
![](https://img.haomeiwen.com/i10552077/f345c87a554863f1.png)
注释:Python中逗号为分割前后行,列,而:代表全取该位置行/列。m:n含左不含右。
![](https://img.haomeiwen.com/i10552077/44d4d40bf7bcabd6.png)