鱼C论坛

 找回密码
 立即注册
查看: 1173|回复: 1

[已解决]python

[复制链接]
发表于 2020-8-21 22:10:01 | 显示全部楼层 |阅读模式
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()
最佳答案
2020-8-21 22:10:02


你前面 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()

datingTestSet2.rar

12.42 KB, 下载次数: 2

最佳答案

查看完整内容

你前面 readlines 读取全部文件内容了,此时文件指针已经到末尾了 你需要 seek(0) 移动下文件指针,参考代码:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-21 22:10:02 | 显示全部楼层    本楼为最佳答案   


你前面 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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 07:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表