在实现K-近邻算法的海伦约会实例,将文本数据记录到Numpy的解析程序,出现了“could not convert string to float: ”,无法将字符串转化为浮点型的问题。
错误代码
def file2matrix(filename):
# 打开文件得到文件行数
fr = open(filename)
arrayOLines = fr.readline()
numberOfLines = len(arrayOLines)
# 创建返回的Numpy矩阵
returnMat = zeros((numberOfLines, 3))
classLabelVector = []
index = 0
# 解析文件数据到列表
for line in arrayOLines:
line = line.strip()
listFromLine = line.split('\t')
returnMat[index, :] = listFromLine[0:3]
classLabelVector.append(listFromLine[-1])
index += 1
return returnMat,classLabelVector
错误的原因
在仔细对照下发现,在第4行代码fr.redline()处,少打了一个s
修改之后
arrayOLines = fr.readlines()
numberOfLines = len(arrayOLines)
运行结果
还是自己粗心产生的错误,照书打都打错,不过为了测试这个错误,输入语句太多次都记得住了哈哈
总结
python中必须注意readlines()与readline()的区别,readlines是逐行读取整个文件的内容,readline()是只读取文件中一行的内容