无涯教程-机器学习 - 数据加载

假设如果要启动ML项目,那么您需要做的第一件事也是最重要的事情是什么?这是无涯教程启动任何ML项目都需要加载的数据。关于数据,对于ML项目,最常见的数据格式是CSV(逗号分隔值)。

基本上,CSV是一种简单的文件格式,用于以纯文本格式存储表格数据(数字和文本),如电子表格。在Python中,可以通过不同的方式将CSV数据加载到其中,但是在加载CSV数据之前必须要注意一些注意事项。

加载CSV事项

CSV数据格式是ML数据中最常见的格式,但是在将其加载到ML项目中时,无涯教程需要注意以下主要注意事项。

文件头

在CSV数据文件中,标题包含每个字段的信息。必须对头文件和数据文件使用相同的定界符,因为头文件指定了应如何解释数据字段。

以下是与CSV文件标头有关的两种情况,必须考虑以下两种情况:

  • 情况1    -  当数据文件具有文件头时 ,它将自动为数据的每一列分配名称。

  • 情况2    -  当数据文件没有文件头时 ,需要为数据的每一列手动分配名称。

在这两种情况下都必须明确指定文件是否包含标头。

注释

任何数据文件中的注释都具有其重要性,在CSV数据文件中,注释在行的开头用井号(#)表示。在将CSV数据加载到ML项目中时需要考虑注释,因为如果文件中包含注释,则可能需要根据选择的加载方法进行指示。

分隔符

在CSV数据文件中,逗号(,)字符是标准分隔符,分隔符的作用是分隔字段中的值,在将CSV文件上传到ML项目中时,考虑分隔符的作用很重要,因为无涯教程还可以使用其他分隔符,如制表符或空白。但是在使用与标准分隔符不同的分隔符的情况下,必须必须明确指定它。

双引号

在CSV数据文件中,双引号("")是默认的引号字符,将CSV文件上传到ML项目中时,考虑引号的作用很重要,因为还可以使用双引号以外的其他引号字符。但是,如果使用的引号字符与标准引号字符不同,则必须明确指定它。

加载CSV方法

在处理ML项目时,最关键的任务是将数据正确加载到其中。机器学习项目中最常见的数据格式是CSV,它具有多种形式,并且解析起来也有不同的难度。在本节中,无涯教程将讨论有关Python中加载CSV数据文件的三种常见方法-

使用Python加载

加载CSV数据文件的第一个也是最常用的方法是使用Python标准库,该库为无涯教程提供了各种内置模块,即 csv模块和 reader函数。以下是借助它加载CSV数据文件的示例-

首先,需要导入Python标准库提供的csv模块,如下所示-

import csv

接下来,需要导入Numpy模块,以将加载的数据转换为NumPy数组。

import numpy as np

现在,提供包含CSV数据文件的文件的完整路径,该路径存储在本地目录中-

path=r"c:\iris.csv"

接下来,使用csv.reader()函数从CSV文件读取数据-

with open(path,r) as f:
reader = csv.reader(f,delimiter = ,)
headers = next(reader)
data = list(reader)
data = np.array(data).astype(float)

可以使用以下脚本行打印标题的名称:

print(headers)

以下行将打印数据的维度,即文件中的行数和列数-

print(data.shape)

下一个脚本行将给出数据文件的前三行-

print(data[:3])
[sepal_length, sepal_width, petal_length, petal_width]
(150, 4)
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]]

使用NumPy加载

加载CSV数据文件的另一种方法是 NumPy 和 numpy.loadtxt()函数,以下是借助它加载CSV数据文件的示例-

在此示例中,使用的是具有糖尿病患者数据的Pima Indians数据集,此数据集是没有标题的数字数据集,也可以将其下载到本地目录中,加载数据文件后,可以将其转换为 NumPy 数组,并将其用于ML项目,以下是用于加载CSV数据文件的Python脚本-

from numpy import loadtxt
path = r"C:\pima-indians-diabetes.csv"
datapath= open(path, r)
data = loadtxt(datapath, delimiter=",")
print(data.shape)
print(data[:3])
(768, 9)
[[ 6. 148. 72. 35. 0. 33.6 0.627 50. 1.]
[ 1. 85. 66. 29. 0. 26.6 0.351 31. 0.]
[ 8. 183. 64. 0. 0. 23.3 0.672 32. 1.]]

使用Pandas加载

加载CSV数据文件的另一种方法是通过 Pandas 和 pandas.read_csv()函数。这是一个非常灵活的函数,它返回一个pandas.DataFrame,可以立即将其用于绘图。以下是借助它加载CSV数据文件的示例-

在这里,无涯教程将实现两个Python脚本,第一个是使用带有标题的Iris数据集,另一个是使用 Pima Indians Dataset ,它是一个没有标题的数字数据集。这两个数据集都可以下载到本地目录中。

脚本1

以下是使用Iris 数据集上的 Pandas 加载CSV数据文件的Python脚本-

from pandas import read_csv
path = r"C:\iris.csv"
data = read_csv(path)
print(data.shape)
print(data[:3])
(150, 4)
sepal_length sepal_width petal_length petal_width
0 5.1        3.5         1.4          0.2
1 4.9        3.0         1.4          0.2
2 4.7        3.2         1.3          0.2

脚本2

以下是使用Pima Indians Diabetes数据集上的Pandas加载CSV数据文件以及提供标头名称的Python脚本-

from pandas import read_csv
path = r"C:\pima-indians-diabetes.csv"
headernames = [preg, plas, pres, skin, test, mass, pedi, age, class]
data = read_csv(path, names=headernames)
print(data.shape)
print(data[:3])
(768, 9)
   preg  plas    pres  skin  test  mass   pedi  age  class
0     6   148      72    35     0  33.6  0.627   50      1
1     1    85      66    29     0  26.6  0.351   31      0
2     8   183      64     0     0  23.3  0.672   32      1

借助给定的示例,可以轻松理解上面使用的三种加载CSV数据文件的方法之间的区别。

机器学习 - 数据加载 - 无涯教程网无涯教程网提供假设如果要启动ML项目,那么您需要做的第一件事也是最重要的事情是什么?这是无涯教程...https://www.learnfk.com/python-machine-learning/machine-learning-with-python-data-loading-for-ml-projects.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/93653.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python】requests实现cookie 登陆

Python 系列 文章目录 Python 系列前言一、requests是什么?二、使用步骤1.引入库 总结 前言 session 登录获取接口数据的,操作不需要header 等数据,print(my_session.headers),如果有需要可以自己重新去设置,包括cook…

无涯教程-PHP - Filtered反序列化

PHP 7引入了Filtered unserialize()函数&#xff0c;以在对不受信任的数据上的对象进行反序列化时提供更好的安全性。 <?phpclass MyClass1 { public $obj1prop; }class MyClass2 {public $obj2prop;}$obj1new MyClass1();$obj1->obj1prop1;$obj2new MyClass2();$obj…

【java并发编程的艺术读书笔记】AQS队列同步器简介、实现自定义锁

AQS介绍 AQS&#xff08;AbstractQueuedSynchronizer&#xff09;是 Java 并发包&#xff08;java.util.concurrent&#xff09;中一个重要的基础类&#xff0c;用于实现同步器&#xff08;Synchronizer&#xff09;的框架。AQS 提供了一种基于 FIFO 等待队列的机制&#xff0…

CentOs下面安装jenkins记录

目录 一、安装jenkins 二、进入jenkins 三、安装和Gitee&#xff0c;Maven等插件 一、安装jenkins 1 wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat-stable/jenkins.repo 2 rpm --import https://pkg.jenkins.io/redhat-stable/…

Qt 自定义菜单、右键菜单

在接触Qt这段时间以来&#xff0c;经常遇到菜单项的问题&#xff08;右键菜单、托盘菜单、按钮菜单等&#xff09;&#xff0c;QMenu用于菜单栏,上下文菜单,弹出菜单等&#xff0c;利用QMenuQAction就可以达到效果&#xff01; 右键菜单实现&#xff1a;通过重写contextMenuEv…

抖音web主页视频爬虫

文章内容仅供参考学习&#xff0c;如有侵权请联系作者进行删除 原理分析&#xff1a; 1、通过列表接口获取用户主页视频数据。 2、通过web端的视频详情页获取视频详情数据。 1&#xff09;需要代码构造cookie参数。 2&#xff09;访问到详情页可拿到视频数据。 抖音主页视频爬…

C++字符串详解

C 大大增强了对字符串的支持&#xff0c;除了可以使用C风格的字符串&#xff0c;还可以使用内置的 string 类。string 类处理起字符串来会方便很多&#xff0c;完全可以代替C语言中的字符数组或字符串指针。 string 是 C 中常用的一个类&#xff0c;它非常重要&#xff0c;我们…

Spring Boot进阶(60):5种判断线程池任务是否全部完成的方案 | 实用技巧分享!

1. 前言&#x1f525; 多线程编程在现代软件开发中非常常见且重要&#xff0c;而线程池是多线程编程的常用技术。在使用线程池时&#xff0c;通常需要判断线程池中的任务是否全部完成&#xff0c;以便决定程序继续执行的下一步操作。本文将介绍5种判断线程池任务是否全部完成的…

【送书活动】AI时代,程序员需要焦虑吗?

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

常见API架构介绍

常见API架构介绍 两个服务间进行接口调用&#xff0c;通过调用API的形式进行交互&#xff0c;这是常见CS架构实现的模式&#xff0c;客户端通过调用API即可使用服务端提供的服务。相较于SPI这种模式&#xff0c;就是服务端只规定服务接口&#xff0c;但具体实现交由第三方或者自…

mysql和mybatisPlus实现:datetime类型的字段范围查询

前提说明 数据库在存储数据时,我们为了精确一下时间,便会把改时间类型的字段设置为datetime类型; 在过滤数据库数据时,我们又需要对该字段进行一个范围的过滤 由此,便出现了这篇博客 datetime数据类型 在MySQL中,datetime数据类型用于保存日期和时间的值。它的格式为Y…

MyBatis分页查询与特殊字符处理

目录 目录 一、引言 1.1 简介Mybatis 1.2分页查询的重要性 1.3MyBatis特殊字符处理的挑战 挑战1&#xff1a;SQL注入漏洞 挑战2&#xff1a;查询结果异常 挑战3&#xff1a;数据完整性问题 挑战4&#xff1a;跨平台兼容性 挑战5&#xff1a;用户体验 如何应对挑战 二…

Python爬虫分布式架构 - Redis/RabbitMQ工作流程介绍

在大规模数据采集和处理任务中&#xff0c;使用分布式架构可以提高效率和可扩展性。本文将介绍Python爬虫分布式架构中常用的消息队列工具Redis和RabbitMQ的工作流程&#xff0c;帮助你理解分布式爬虫的原理和应用。 为什么需要分布式架构&#xff1f; 在数据采集任务中&#…

D.OASIS City 和 Warrix 在The Sandbox 庆祝 Rise of the 10th Legend十周年

D.OASIS 首次展示了变革性娱乐 D.OASIS City&#xff0c;正如它与 WARRIX 一起承诺的那样。WARRIX 是获得泰国国家队球衣生产授权的标志性运动服装品牌。 这款激动人心的游戏冒险游戏于今天推出&#xff0c;让用户能够投入 D.OASIS City x WARRIX&#xff1a;Rise of the 10th…

【前端从0开始】JavaSript——Date对象

创建Date对象 var dateObjnew Date(); 方法 将日期转为字符串 toLocaleString() toLocaleDateString() toLocaleTimeString()获取年、月、日、小时、分、秒 ○1&#xff09;getYear() //两位的年(2000年前)或三位的年[1900] 获取两位数的年&#xff0c;从1900年开始计算&…

数学系硕士研究生的科研过程——PDE约束下含参优化控制问题的深度学习算法

笔者今天上午收到了之前北大课题组老板的通知&#xff0c;得知研究生期间和学长合作的论文终于被siam接收&#xff0c;终于为自己研究生涯画上了一个句号。这里打算分享一下个人的科研过程以及这篇论文的工作&#xff0c;即将读研或者打算读研的同学或许可以从中获得益处。论文…

Golang Gorm 高级查询之where + find

插入测试数据 package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm" )type Student struct {ID int64Name string gorm:"size:6"Age intEmail *string }func (*Student) TableName() string {return "student&q…

浅析SAS协议:链路层

文章目录 概述原语通用原语连接管理原语连接通信原语 地址帧IDENTIFY地址帧OPEN地址帧 链路复位Link ResetHard ResetSATA的Link Reset 连接管理建立连接连接仲裁 流量控制SSP流控Credit Advance SMP流控 相关参考 概述 SAS链路层用于定义原语、地址帧以及连接相关的内容&…

基金市场的冷热传递什么信号?

摘要及声明 1&#xff1a;本文主要利用实际数据进行检验&#xff0c;从定量角度分析基金发行情况与股票市场之间的关系&#xff1b; 2&#xff1a;本文主要为理念的讲解&#xff0c;模型也是笔者自建&#xff0c;文中假设与观点是基于笔者对模型及数据的一孔之见&#xff0c…

高效UI设计必备的4个UI设计软件,真的好用!

随着UI设计工作的不断发展&#xff0c;工作中的需求变得更加多样&#xff0c;一个好用的 UI 设计软件将极大减轻设计师的工作负担&#xff0c;提高设计师的工作效率&#xff0c;今天本文精选了4款好用的UI设计软件&#xff0c;并将逐一介绍的它们各自的特点和用法&#xff0c;给…