Python机器学习

数据加载

Python机器学习数据加载详细操作教程
假设您要启动ML项目,那么您需要做的第一件事也是最重要的事情是什么?这是我们启动任何ML项目都需要加载的数据。关于数据,ML项目最常用的数据格式是CSV(逗号分隔值)。
基本上,CSV是一种简单的文件格式,用于以纯文本格式存储表格数据(数字和文本),例如电子表格。在Python中,我们可以通过不同的方式将CSV数据加载到其中,但是在加载CSV数据之前,我们必须要注意一些注意事项。

加载CSV数据时的注意事项

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

文件头

在CSV数据文件中,标题包含每个字段的信息。头文件和数据文件必须使用相同的定界符,因为头文件指定了应如何解释数据字段。
以下是与CSV文件标题有关的两种情况,必须考虑-
第一种情况:当数据文件具有文件头时-如果数据文件具有文件头,它将自动为每个数据列分配名称。 第二种情况:当数据文件没有文件头时-如果数据文件没有文件头,我们需要为每个数据列手动分配名称。
在两种情况下,我们都必须明确指定天气条件,以便我们的CSV文件是否包含标题。

注释

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

分隔符

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

引号

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

加载CSV数据文件的方法

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

使用Python标准库加载CSV

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

示例

在此示例中,我们使用的鸢尾花 花数据集可以下载到我们的本地目录中。加载数据文件后,我们可以将其转换为数组,并将其用于ML项目。以下是用于加载CSV数据文件的Python脚本-
首先,我们需要如下导入Python标准库提供的csv模块-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
import csv
接下来,我们需要导入Numpy模块,以将加载的数据转换为NumPy数组。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
import numpy as np
现在,提供文件的完整路径,该文件存储在我们的本地目录中,具有CSV数据文件-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
path = r"c:\iris.csv"
接下来,使用csv.reader()函数从CSV文件中读取数据-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
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)
下面的脚本行将打印数据的形状,即文件中的行数和列数-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
print(data.shape)
下一个脚本行将给出数据文件的前三行-
print(data[:3])

输出

# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
['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

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

示例

在此示例中,我们使用具有糖尿病患者数据的Pima Indians数据集。该数据集是没有标题的数字数据集。也可以将其下载到我们的本地目录中。加载数据文件后,我们可以将其转换为 NumPy数组,并将其用于ML项目。以下是用于加载CSV数据文件的Python脚本-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
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])

输出

# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
(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

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

示例

在这里,我们将实现两个Python脚本,第一个是使用带有标题的Iris数据集,另一个是使用 Pima Indians Dataset ,它是一个没有标题的数字数据集。这两个数据集都可以下载到本地目录中。
脚本1
以下是在Iris 数据集-上使用 Pandas 加载CSV数据文件的Python脚本。
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
from pandas import read_csv
path = r"C:\iris.csv"
data = read_csv(path)
print(data.shape)
print(data[:3])

输出

# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
(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脚本-
# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
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])

输出

# Filename : example.py
# Copyright : 2020 By Lidihuo
# Author by : www.lidihuo.com
# Date : 2020-08-26
(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数据文件的方法之间的区别。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4