|
10鱼币
为什么循环读取行然后进行添加数据的操作没起作用
- from numpy import *
- # 导入运算符模块
- import matplotlib as mpl
- import matplotlib.pyplot as plt
- def file2matrix(filename):
- '''将待处理的数据格式转换成分类器可以接受的格式
- 将文本记录转换为Numpy的解析程序
- 该函数输入为文本字符串,输出为训练样本矩阵和类标签向量'''
- fr = open(filename)
- # 得到文件行数
- numberOfLines = len(fr.readlines()) # get the number of lines in the file
- # 创建(行数,特征数)以零填充的矩阵Numpy
- returnMat = zeros((numberOfLines, 3)) # prepare matrix to return
- # 创建一个列表存放标签值
- classLabelVector = [] # prepare labels return
- # 解析文件数据到列表
- index = 0
- for line in fr.readlines():
- # strip截取掉所有回车字符
- line = line.strip()
- # 将整行数据以’\t'为分隔符分割成一个元素列表
- listFromLine = line.split('\t')
- returnMat[index, :] = listFromLine[0:3]
- # 列表中存储的元素值为整型,否则python语言会将这些元素当做字符串处理
- classLabelVector.append(int(listFromLine[-1]))
- index += 1
- return returnMat, classLabelVector
- if __name__ == '__main__':
- datingDataMat, datingLabels = file2matrix('datingTestSet2.txt')
- print(datingDataMat)
- print(datingLabels)
- # 分析数据-使用mpl创建散点图
- fig = plt.figure()
- ax = fig.add_subplot(111)
- ax.scatter(datingDataMat[:, 1], datingDataMat[:, 2])
- plt.show()
复制代码
你前面 readlines 读取全部文件内容了,此时文件指针已经到末尾了
你需要 seek(0) 移动下文件指针,参考代码:
- from numpy import *
- # 导入运算符模块
- import matplotlib as mpl
- import matplotlib.pyplot as plt
- def file2matrix(filename):
- '''将待处理的数据格式转换成分类器可以接受的格式
- 将文本记录转换为Numpy的解析程序
- 该函数输入为文本字符串,输出为训练样本矩阵和类标签向量'''
- fr = open(filename)
- # 得到文件行数
- numberOfLines = len(fr.readlines()) # get the number of lines in the file
- # 创建(行数,特征数)以零填充的矩阵Numpy
- returnMat = zeros((numberOfLines, 3)) # prepare matrix to return
- # 创建一个列表存放标签值
- classLabelVector = [] # prepare labels return
- # 解析文件数据到列表
- index = 0
- fr.seek(0)
- for line in fr.readlines():
- # strip截取掉所有回车字符
- line = line.strip()
- # 将整行数据以’\t'为分隔符分割成一个元素列表
- listFromLine = line.split('\t')
- returnMat[index, :] = listFromLine[0:3]
- # 列表中存储的元素值为整型,否则python语言会将这些元素当做字符串处理
- classLabelVector.append(int(listFromLine[-1]))
- index += 1
- return returnMat, classLabelVector
- if __name__ == '__main__':
- datingDataMat, datingLabels = file2matrix('datingTestSet2.txt')
- print(datingDataMat)
- print(datingLabels)
- # 分析数据-使用mpl创建散点图
- fig = plt.figure()
- ax = fig.add_subplot(111)
- ax.scatter(datingDataMat[:, 1], datingDataMat[:, 2])
- plt.show()
复制代码
|
最佳答案
查看完整内容
你前面 readlines 读取全部文件内容了,此时文件指针已经到末尾了
你需要 seek(0) 移动下文件指针,参考代码:
|