《机器学习实战》——python 中关于文件读取的正确打开方式

Python实用技巧讲解——如何正确读取大文件? 文件读写属于一种常见的IO操作,由于操作系统将底层操作磁盘的接口向上封装为一种通用接口,因此Python中读写文件的基本方法和JAVA、PHP等高级编程语言一样,先请求操作系统打开一个文件描述符,通过操作系统提供的接口从这个文件对象中读取数据,或者把数据写入这个文件中,最后当文件读写操作完成后关闭文件。 需要注意的是文件读写完成后必须及时关闭文件,一方面打开的文件会占用操作系统的资源,并且... 阅读详情

    最近在学习《机器学习实战》这本书,在做到里面第08章的时候发生了一些小错误,具体内容如下:

    数据总共有4177行,9列,最后一列为鲍鱼的年龄,为标签值,前8列为数据特征,数据集中的数据长这个样子:


    在读取数据的时候,定义了loaddata()函数,最初时候定义的函数如下:

#示例:鲍鱼年龄预测—数据读取
def loaddata_abalone(filename):
    f = open(filename)
    num = len(f.readline().strip().split()) - 1   #数据特征的数目
    data = []
    label = []
    for i in f.readlines():
        line = i.strip().split()          #将字符串分割返还的是列表
        temp = []
        for j in range(num):
            temp.append(float(line[j]))
        data.append(temp)
        label.append([float(line[-1])])
    return data,label
data,label= loaddata_abalone(r'E:\MLiA_SourceCode\machinelearninginaction\Ch08\abalone.txt')
data = np.mat(data)
print(data.shape)
print(data)

    结果为:


    经过比较发现,data中没有读取第一行的数据,通过分析发现这是因为在计算num的时候,已经读取了第一行来计算特征值的数目:

num = len(f.readline().strip().split()) - 1

    所以在下面的循环中f.readlines()是从数据的第二行开始的,所以会少一行。

    将代码改为如下形式:

#示例:鲍鱼年龄预测—数据读取
def loaddata_abalone(filename):
    f = open(filename)
    num = len(open(filename).readline().strip().split()) - 1   #数据特征的数目---更改这个部位,将f.readline() 改为 open(filename).readline()
    data = []
    label = []
    for i in f.readlines():
        line = i.strip().split()          #将字符串分割返还的是列表
        temp = []
        for j in range(num):
            temp.append(float(line[j]))
        data.append(temp)
        label.append([float(line[-1])])
    f.close()
    return data,label
data,label= loaddata_abalone(r'E:\MLiA_SourceCode\machinelearninginaction\Ch08\abalone.txt')
data = np.mat(data)
print(data.shape)
print(data)

    只更改num部分,将其中f.readline() 改为 open(filename).readline()。

num = len(open(filename).readline().strip().split()) - 1 

    运行改正后的代码,结果如下:


    与原数据对比,可知此次数据读取正常。

abalone.txt 立即下载

相关推荐

uci数据集——品质值得信赖

优质的uci数据集 适合在搞机器学习和数据挖掘的同学使用哈~ 包含的数据集文件举例:abalone balance-scale bcw-wdbc bcw-wpbc blood-transfusion breast-cancer breast-cancer-wisconsin car credit-screening dermatology ecoli flags glass haberman hayes-roth inonosphere iris lenses letter recognition liver disorders lynphography magic gamma telescope mammographic mushroom nursery pima indians primary-tumor spambase tic-tac-toe vote wine yeast等;另外附有所有数据集的表格清单(就是属性个数啊数据条数啊之类的)。

机器学习-线性回归,局部加权线性回归和岭回归

参考书籍: 《机器学习实战》 相关数学推导知识笔记见我上传的手写pdf 任务: 1)读取数据集’abalone.txt’,输出线性回归最佳参数以及预测值和真实值的误差平方和。 2)读取数据集’ex0.txt’,将数据集分成合适的训练集和测试集,用局部线性回归模型训练数据,选取你认为最佳sigma数值,并说明原因。 提示:分离训练集和测试集代码可参考。 from numpy import * import matplotlib.pyplot as plt def loadDataSet(fileName)

weixin_44387515的博客 526

abalone.zip

多元线性回归的一个实战 abalone数据集合 详情请阅读我的博客《基于最小二乘法的一般多元线性回归的实战》

机器学习第五周-回归

机器学习回归模型-线性回归、岭回归、前向逐步回归

蜂鸟的学习笔记 420

机器学习常用数据集(iris、wine、abalone)

包括了常用的机器学习数据集,都是csv格式的。有iris.csv、wine.csv、abalone.csv、glass.csv一共由11个数据。

Vivado实战:AXI转PCIe IP核配置全流程(含性能优化技巧)

本文详细介绍了在Vivado环境中配置AXI转PCIe IP核的全流程,包括工程准备、IP核参数设置、BAR空间配置、中断系统优化以及TLP传输效率提升等关键步骤。特别分享了经过验证的性能优化技巧,帮助开发者显著提升PCIe链路的吞吐量和稳定性,适用于视频采集、高速数据记录等应用场景。

weixin_30892037的博客 552

初级数据分析-python(第一节数据存储)

在大数据时代,各领域都为数据分析提供海量的数据源。数据可以分为非结构化数据、半结构化数据和结构化数据。对于数据分析师而言,工作中经常面对的数据格式有excel数据,JSON数据,以及SQLite等数据库数据。因此,本章节将以这三种格式的数据为例,讲解数据的常用存取方法。对于csv格式文件,可以用csv模块的csv.reader()方法读取,也可以利用pandas的read_csv()方法读取。对于xlsx和xls格式文件,可以用pandas和read_Excel()方法读取。

hatii的博客 1186

opencv读取海康威视摄像头相关配置

1、开发环境 海康威视的网络摄像头使用: 开发工具:vs2015 C++ 海康SDK 2、相关操作 下载海康威视SDK:网址:http://www.hikvision.com/cn/download_61.html • 1:对照自己的开发平台可以下载设备网络SDK_Win32设备网络SDK_Win64,解压到本地文件下: • 2:VS配置 、Opencv配置。参考址 http://blog.csdn.net/poem_qianmo/article/details/19809337 (建议自己创

HMJ115的博客 985

python怎么读取txt文件-Python笔记(读取txt文件中的数据)

在机器学习中,常常需要读取txt文本中的数据,这里主要整理了两种读取数据的方式数据内容共有四列数据,前三列为特征值,最后一列为数据标签409208.3269760.9539523144887.1534691.6739042260521.4418710.80512417513613.1473940.4289641383441.6697880.13429617299310.1417401.032955...

q6q6q的专栏 3478

鸿蒙进阶——HDI及IDL硬件接口IPC框架小结

HDI(Hardware Device Interface):OpenHarmony硬件设备接口,定义系统中跨进程通信的接口,实现服务间的跨进程通信

最美不过,心中有梦,身旁有你! 3907

OpenBCI脑电实验避坑指南:如何用Python准确捕捉P300信号

本文详细介绍了使用OpenBCI和Python进行P300脑电信号实验的避坑指南,包括电极贴放、信号采集、信号处理和数据分析等关键步骤。通过实战经验和代码示例,帮助研究者避开常见陷阱,提高P300信号捕捉的准确率,适用于脑机接口和神经科学研究。

weixin_30316097的博客 553

Azure ML Studio端到端机器学习流水线实战指南

机器学习流水线是将数据准备、特征工程、模型训练到部署监控串联成自动化闭环的技术范式。其核心原理在于通过可复用、可版本化、可审计的组件化流程,实现AI能力从实验到生产的可靠跃迁。技术价值体现在显著降低MLOps门槛、加速业务验证周期、强化跨角色协作与合规治理能力。典型应用场景覆盖零售销量预测、金融风控建模、工业设备预警等需快速迭代且强监管的领域。本文聚焦Azure ML Studio这一支持可视化编排与Python深度嵌入的混合式云平台,深入解析其Datastore数据接入、Execute Python Sc

ateu52935的博客 347

SAP公司间外协业务流程以及配置说明

SAP公司间外协业务流程以及配置说明

竹大的博客 7171

【机器学习】数据集类型和打开方式

1. 结构化数据集(Structured Data): 描述: 包含表格形式的数据,通常在行和列中存储。每一行代表一个样本,每一列代表一个特征。 打开方式: 使用库如Pandas可以方便地读取和处理结构化数据。 Python实现: import pandas as pd df = pd.read_csv('文件路径.csv') 2. 图像数据集(Image Data): 描述: 包含图像数据,每个样本通常是一个图像文件。 打开方式: 使用图像处理库如Opencv或PIL(Python Imaging Lib

2201_75286386的博客 1630

YOLOv11改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性

Bw−wgt2h−hgt2weight2Bweight2w−wgt​2h−hgt​2​其中weight2weight = 2weight2。

Limiiiing的博客 3055

华为OD机试真题 新系统 - 8位LED控制器 (Java/Py/C/C++/Js/Go)

本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。

算法大师! 1978

Python机器学习:数据预处理与清洗的打开方式

Python中的Pandas库提供了多种读取数据的方式,包括CSV、Excel以及数据库等,能够高效地处理各种格式的数据。这在许多机器学习算法中是必要的,尤其是基于距离的算法,如KNN和SVM。但如果缺失值较多,填充可能是更好的选择。处理异常值的方式可以是将其删除、替换或进行修正,具体策略应根据数据集的特征和分析目标而定。通过以上方法,可以有效地对数据进行预处理与清洗,为后续的机器学习建模提供高质量的数据支持。通过上述方式,Pandas提供了强大的数据读取能力,为后续的数据清洗与处理奠定基础。

switch616的博客 1295

大数据在电力行业的应用案例解析 -【电力技术】(十)电力数字化运营与大数据精准服务体系建设

电力数字化运营,是大数据在电力行业从技术场景走向业务价值的最终落点。它以数据为纽带,将用户、设备、服务、收益、风险全部纳入统一闭环,实现从 “管好电” 向 “运营好能源资产” 升级。在新型电力系统与市场化改革双重驱动下,谁能用好数据、建好闭环、做好运营,谁就能在服务、成本、效益、安全上建立长期优势。

getusushu的博客 70

python怎么查看文件的编码格式_Python中文件编码的检测

前言:文件打开的原则是“以什么编码格式保存的,就以什么编码格式打开 ”,我们常见的文件一般是以“ utf-8 ”或“ GBK ”编码进行保存的,由于编辑器一般设置了默认的保存和打开方式,所以我们在记事本或常见文档编辑器如Word中不容易看到乱码的情况发生,但是,当我们要在内存里读取打开一个文件时,如果文档编码方式和计算机内存默认读取文件的编码不同,或者我们打开文件时未设置正确的编码打开规则,则很有...

weixin_39675679的博客 2861

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python读取数据库数据、并保存为docx_Python从数据库读取大量数据批量写入文件的方法...

Python从数据库读取大量数据批量写入文件的方法使用机器学习训练数据时,如果数据量较大可能我们不能够一次性将数据加载进内存,这时我们需要将数据进行预处理,分批次加载进内存。下面是代码作用是将数据从数据库读取出来分批次写入txt文本文件,方便我们做数据的预处理和训练机器学习模型。#%%import pymssql as MySQLdb #这里是python3 如果你是python2.x的话,imp...

weixin_39543655的博客 551

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python学习:如何实现文件编码的检测

文件打开的原则是“ 以什么编码格式保存的,就以什么编码格式打开 ”,我们常见的文件一般是以“ utf-8 ”或“ GBK ”编码进行保存的,由于编辑器一般设置了默认的保存和打开方式,所以我们在记事本或常见文档编辑器如Word中不容易看到乱码的情况发生,但是,当我们要在内存里读取打开一个文件时,如果文档编码方式和计算机内存默认读取文件的编码不同,或者我们打开文件时未设置正确的编码打开规则,则很有可能出现一堆乱码,无法正常读取文件内容,影响接下来的工作。

Python热爱者的博客 3516

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

《机器学习实战》书中python2.7与3.6的区别-持续更新

《机器学习实战》书中使用的是python2.7,而对于现在新接触python的同学来说都是上手python3.6版本。 由于本渣渣也正在学习此书,将陆续列出遇到的不同于现实编码的困难与解决方法(如果能解决的话.......)。 1.在import numpy时候,书中提倡from numpy import * 而我们在学习python3.6时常用import numpy as np,于是在调用...

m0_38102941的博客 560

python写文字方法_Python中文件的写入读取以及附加文字方法

Python中文件的写入读取以及附加文字方法今天学习到python的读取文件部分。还是以一段代码为例:filename='programming.txt'with open(filename,'w') as file_object:file_object.write("I love programming.\n")file_object.write("I love travelling.\n")在...

weixin_39630498的博客 635

python机器学习之十二 文件读写

本篇将会介绍python中的文件读写,包括 一般文件读写 读文件 写文件 读文件 ①打开文件 方式一:open 语法格式: f=open("文件路径",'r') r表示是读取文本文件,rb是二进制文件。(参数默认值就是r) 如果读取文件不存在,open语句将会抛出错误。 f=open('test.txt', 'r') Traceback (most recent ...

melon__的博客 501

2024年Python最全Python中文件编码的检测(2)

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

mxzsybkj的博客 861
上一篇: 关于python matplotlib的一些简单应用
下一篇: Python 中矩阵或者数组相减的法则
Halo_Linch
博客等级 码龄11年 11粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值