如何在Python中加载机器学习数据

如何在Python中加载机器学习数据

在开始机器学习项目之前,您必须能够加载数据。

机器学习数据最常见的格式是CSV文件。在Python中加载CSV文件的方法有很多。

加载CSV数据时的注意事项

1.你的数据有文件头吗?如果是这样的话,这可以帮助自动为每列数据分配名称。如果没有,您可能需要手动命名属性。无论哪种方式,您都应该在加载数据时显式指定CSV文件是否具有文件头。

2.你的数据有注释吗?CSV文件中的注释由行首的哈希(“#”)表示。如果文件中有注释,则根据加载数据所使用的方法,可能需要指示是否需要注释以及需要表示注释行的字符。

3.分隔符 分隔字段中的值的标准分隔符是逗号(“,”)字符。您的文件可以使用不同的类似于“\t”的选项卡,在这种情况下,您必须显式指定它。

1.使用Python标准库加载CSV

Python API提供模块CSV和函数reader(),可用于加载CSV文件。

加载后,将CSV数据转换为NumPy数组并将其用于机器学习。

例如,您可以将Pima Indians数据集下载到本地目录。

所有字段都是数字,没有标题行。运行下面的配方将加载CSV文件并将其转换为NumPy数组。

#load csv file
import csv
import numpy
filename = "csvdata.csv"
# raw_data = open(filename, 'rt')
with open(filename, 'rt') as raw_data:reader = csv.reader(raw_data, delimiter=',',quoting=csv.QUOTE_NONE)X =list(reader)data = numpy.array(X).astype('float')print(data.shape)
(768, 9)

该示例加载了一个对象,该对象可以覆盖数据的每一行,并且可以轻松地转换为NumPy数组。运行该示例将打印数组的形状。

2.使用NumPy加载CSV文件

您可以使用NumPy和numpy.loadtxt()函数加载CSV数据。

此函数假定没有标题行,并且所有数据具有相同的格式。下面的示例假定文件csvdata.csv位于当前工作目录中。

#load csv
import numpy
filename = "csvdata.csv"
with open(filename, 'r') as raw_data:data = numpy.loadtxt(raw_data, delimiter=",")print(data.shape)
(768, 9)

可以修改此示例以直接从URL加载相同的数据集,如下所示:

# load csv from URL using numpy
from numpy import loadtxt
from urllib.request import urlopen
url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv'
raw_data = urlopen(url)
dataset = loadtxt(raw_data, delimiter=',')
print(dataset.shape)
(768, 9)

3.使用Pandas加载CSV文件

您可以使用Pandas和pandas.read_csv()函数加载CSV数据。

这个函数非常灵活,也许是我推荐的加载机器学习数据的方法。该函数返回一个pandas.DataFrame,您可以立即开始汇总和绘图。

下面的示例假定“pima-indians-diabetes.data.csv”文件位于当前工作目录中。

注意,在这个例子中,我们显式地为DataFrame指定了每个属性的名称。运行示例将显示数据的形状:

#load csv using pandas
import pandas
filename = 'csvdata.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pandas.read_csv(filename, names=names)
print(data.shape)
(768, 9)

我们也可以修改这个例子,直接从URL加载CSV数据。

#load csv using pandas from url
import pandas 
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pandas.read_csv(url, names=names)
print(data.shape)
(768, 9)

在这篇文章中,你发现了如何在Python中加载机器学习数据。

您学习了三种可以用途:

使用Python标准库加载CSV。

使用NumPy加载CSV文件。

使用Pandas加载CSV文件。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上位机图像处理和嵌入式模块部署(树莓派4b的提高版)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 目前人工智能非常火,但是人工智能需要极高的算力和海量的数据,因此相关的关联公司非常吃香,nvidia就是提供算力…

【基本数据结构】链表

文章目录 前言链表简介头节点与尾节点特性 分类单向链表双向链表循环链表 单链表基本操作定义并初始化单链表读取节点插入节点删除节点修改节点 参考资料写在最后 前言 本系列专注更新基本数据结构,现有以下文章: 【算法与数据结构】数组. 【算法与数…

互联网搞钱大变天,这有几条活路

互联网搞钱大变天,这有几条活路 靠互联网营生的各位同胞,你们有没有想过这样一个问题:假如有一天你的自媒体账号全被封了,你手上的操作项目全都黄了,你会怎么办? 就封号这事在这几年相信大家都不会陌生&a…

【LLM第五篇】名词解释:prompt

1.是什么 提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。 掌握了提示工程相关技能将有助于用户更好地了解…

深入了解 npm:Node.js 包管理工具详解

文章目录 一、npm 基本概念1.1 什么是 npm?1.2 package.json 文件 二、npm 常用命令2.1 初始化项目2.2 安装依赖2.2.1 安装单个包2.2.2 全局安装包2.2.3 安装开发依赖 2.3 移除依赖2.4 更新依赖2.5 查看已安装的包2.6 发布包 三、npm 高级用法3.1 使用 npm scripts3…

JETBRAINS IDES 分享一个2099通用试用码!CLion 2024 版 ,支持一键升级

文章目录 废话不多说上教程:(动画教程 图文教程)一、动画教程激活 与 升级(至最新版本) 二、图文教程 (推荐)Stage 1.下载安装 toolbox-app(全家桶管理工具)Stage 2 : 下…

nestJs中跨库查询

app.module.ts中配置 模块的module中 注意实体类在写的时候和数据库中的表名一样 service中使用一下

【JS】call和 apply函数的详解

JavaScript 中 call() 和 apply() 函数的详解 在JavaScript中,call()和apply()都是非常重要的方法,用于调用函数时指定函数体内的this的值,从而实现不同对象之间的方法共享。尽管它们的功能非常相似,但在实际使用中各有其优势和特…

生产环境磁盘变更方案

datanode磁盘扩容(1人天) 扩容磁盘 1.1 扩容前检查、新盘初始化 确定block副本统计正常,无丢块,无under-replicated 块 后台执行命令检查 hdfs dfs fsck / 无异常可进行以下步骤进行磁盘扩容 新盘初始化 ##格式化新盘,命令示例: mkfs.xfs /dev/sdc##挂载新盘,命令示…

【AI学习】聊两句昨夜OpenAI的GPT-4o

蹭个热点,聊两句昨夜的大事件——OpenAI发布GPT-4o,我看到和想到的一点东西。 首先是端到端方法,前面关于深度学习的文章,对端到端的重要性做了一些学习,对端到端这个概念有了一些理解。正如Richard Sutton在《苦涩的…

大数据Scala教程从入门到精通第六篇:Scala源文件编写和运行

一:Scala源文件编写和运行 1:源代码比较 public class HelloJava{public static void main(String[] args){System.out.println("hello scala")} } object HelloScala{//用于声明方法 入参是一个String类型的数组。返回值类型为空def main…

【javascript】如何通过hook函数定位到原函数调用位置

思路:通过debugger找到hook替换函数的位置,再通过调用堆栈找到是谁调用了它,最后悬浮定位找到原函数代码位置。 对原方法重新赋值: var stringify JSON.stringify; JSON.stringify function (params) {if (params["paylo…

设计模式——状态模式(State)

状态模式(State Pattern)是一种行为设计模式,它允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。状态模式通过把对象的每一个状态都封装到一个单独的类中,并将请求委托给当前状态对象来让状态的变化与行…

鸿蒙内核源码分析(gn应用篇) | gn语法及在鸿蒙的使用

gn是什么? gn 存在的意义是为了生成 ninja,如果熟悉前端开发,二者关系很像 Sass和CSS的关系. 为什么会有gn,说是有个叫even的谷歌负责构建系统的工程师在使用传统的makefile构建chrome时觉得太麻烦,不高效,所以设计了一套更简单,更高效新的构建工具gnninja,然后就被广泛的使用…

【芯片制造】【常用术语】CP、FT、WAT

背景: 在我们讲wafer加工好以后,需要进行相关测试,在此阶段,有很多提及到的常用术语,我们依次进行解释。主要单词含义: CP : Chip Probing(probe card),wafer…

【docker】SpringBoot应用容器镜像日志挂载

启动镜像时候使用 -v 挂载 首先得在宿主机创建目录:/workspace/java/demo/logs mkdir -pv /workspace/java/demo/logs 启动镜像 docker run -p 8080:8080 -itd -v /workspace/java/demo/logs/:/logs/ 192.168.2.1:5000/demo:0.0.1-SNAPSHOT -v /workspace/ja…

【Shell脚本】Shell编程之数组

目录 一.数组 1.基本概念 2.定义数组的方法 2.1.方法一 2.2.方法二 2.3.方法三 2.4.方法四 2.5.查看数组长度 2.6.查看数组元素下标 3.数组分片 4.数组字符替换 4.1.临时替换 4.2.永久替换 5.数组删除 5.1.删除某个下标 5.2.删除整组 6.数组遍历和重新定义 7…

SpringBoot自动装配(二)

近日,余溺于先贤古哲之文无法自拔。虽未明其中真意,但总觉有理。遂抄录一篇以供诸君品鉴——公孙鞅曰:“臣闻之:‘疑行无名,疑事无功。’君亟定变法之虑,殆无顾天下之议之也。且夫有高人之行者,…

【备忘】Unable to stop the ctxapinject driver services

【问题】一台通过Autopilot部署的Windows11系统,在公司门户里看到 策略推送的Citrix workspace不成功,尝试手动安装,报错: 【解决】网上看了半天没找出个所以然来,尝试sc queryex ctxapinject 查到对应的进程ID是0&…

【JavaWeb】Day77.Spring——SpringBoot原理(一)

SpringBoot原理 Spring是目前世界上最流行的Java框架,它可以帮助我们更加快速、更加容易的来构建Java项目。而在Spring家族当中提供了很多优秀的框架,而所有的框架都是基于一个基础框架的SpringFramework(也就是Spring框架)。而如果我们直接基于Spring框…