kNN(从文本文件中解析数据)

青春壹個敷衍的年華 提交于 2019-11-30 05:53:00
# 准备数据:从文本文件中解析数据# 在kNN.py中创建名为file2matrix的函数,处理输入格式问题# 该函数的输入为文件名字符串,输出为训练样本矩阵和类标签向量# 将文本记录到转换Numpy的解析程序
 1 def file2matrix(filename):
 2     fr = open(filename)
 3     arrayOLines = fr.readlines()
 4     numberOfLines = len(arrayOLines)    #得到文件行数
 5     returnMat = zeros((numberOfLines,3))    #创建返回的Numpy矩阵
 6     classLabelVector = []
 7     index = 0
 8     for line in arrayOLines:    #解析文件数据列表
 9         line = line.strip()     #使用line.strip()截取掉所有的回车字符
10         listFromLine = line.split('\t')     #使用tab字符\t将上一步得到的整行数据分割成一个元素列表
11         returnMat[index,:] = listFromLine[0:3]      #选取前三个元素,存储到特征矩阵中
12         classLabelVector.append(int(listFromLine[-1]))      #-1表示列表中的最后一列元素,存储到向量classLabelVector中
13         index += 1
14         return returnMat,classLabelVector
1 出现的错误
2 >>>reload(kNN)
3 Traceback (most recent call last):
4   File "<input>", line 1, in <module>
5 NameError: name 'reload' is not defined
 1 如果你的python版本是Python 2.X:
 2 import sys
 3 reload(sys)
 4 sys.setdefaultencoding("utf-8")
 5 
 6 如果你的python版本是python 3.3:
 7 import imp
 8 imp.reload(sys)
 9 
10 注意:
11 1.Python 3与Python 2有很大的区别,其中Python 3系统默认使用的就是utf-8编码。
12 2. 所以,对于使用的是Python 3的情况,就不需要sys.setdefaultencoding("utf-8")这段代码。
13 3.最重要的是,Python 3的sys库里面已经没有setdefaultencoding()函数了。
14 
15 如果你的python版本是python 3.4以及3.4以上:
16 import importlib
17 import sys
18 importlib.reload(sys))

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!