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

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

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

在这篇文章中,你将发现在Python中加载机器学习数据的不同方法。

我们开始吧。

加载CSV数据时的注意事项

从CSV文件加载机器学习数据时有许多注意事项。

作为参考,你可以通过查看标题为逗号分隔值(CSV)文件的通用格式和MIME类型的CSV请求注释来了解有关CSV文件期望的更多信息。

CSV文件头

你的数据有文件头吗?

如果是这样的话,这有助于自动为每列数据指定名称。如果不是,你可能需要手动命名属性。

无论采用哪种方法,你都应该显式指定在加载数据时CSV文件是否有文件头。

注释

你的数据有注释吗?

CSV文件中的注释由行首的散列(“#”)表示。

如果文件中有注释,具体取决于用于加载数据的方法,则可能需要指示是否需要注释以及期望表示注释行的字符。

分隔符

分隔字段中的值的标准分隔符是逗号(“,”)字符。

你的文件可以使用不同的分隔符,如制表符(“\t”),在这种情况下,你必须显式指定它。

引用

有时字段值可以包含空格。在这些CSV文件中,值通常用引号引起来。

默认引号字符是双引号“\” ”。可以使用其他字符,并且你必须指定文件中使用的引号字符。

机器学习数据加载方案

每个方案都是独立的。

这意味着你可以将其复制并粘贴到项目中并立即使用。

如果你对这些方案或改进建议有任何疑问,请留言,我会尽力回答。

使用Python标准库加载CSV

Python API提供可用于加载CSV文件的模块CSV和函数读取器()。

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

例如,你可以将Pima Indians数据集下载到你的本地目录(从此处下载)。

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

# Load CSV (using python)
import csv
import numpy
filename = 'pima-indians-diabetes.data.csv'
raw_data = open(filename, 'rt')
reader = csv.reader(raw_data, delimiter=',', quoting=csv.QUOTE_NONE)
x = list(reader)
data = numpy.array(x).astype('float')
print(data.shape)

该示例加载一个对象,该对象可以遍历数据的每一行,并且可以很容易地转换为NumPy数组。运行该示例将打印数组的形状。

(768, 9)

有关csv.read()函数的详细信息,请参见Python API文档中的CSV文件读取和写入

使用NumPy加载CSV文件

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

此函数假定没有标题行,并且所有数据都具有相同的格式。下面的示例假设文件pia-Indians-diabetes.data.csv在你的当前工作目录中。

# Load CSV
import numpy
filename = 'pima-indians-diabetes.data.csv'
raw_data = open(filename, 'rt')
data = numpy.loadtxt(raw_data, delimiter=",")
print(data.shape)

运行该示例将以numpy.ndarray形式加载文件,并打印数据的形状:

(768, 9)

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

注意:此示例假设你使用的是Python3。

# 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)

有关numpy.loadtxt()函数的更多信息,请参阅API文档(numpy的1.10版)。

使用Pandas加载CSV文件

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

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

下面的示例假设‘pia-Indians-diabetes.data.csv’文件位于当前工作目录中。

# Load CSV using Pandas
import pandas
filename = 'pima-indians-diabetes.data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pandas.read_csv(filename, names=names)
print(data.shape)

请注意,在本例中,我们将每个属性的名称显式指定给DataFrame。运行该示例将显示数据的形状:

(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)

同样,运行该示例将下载CSV文件,对其进行分析并显示加载的DataFrame的形状。

(768, 9)

要了解有关pandas.read_csv()函数的更多信息,可以参考API文档。

摘要

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

你学习了三种可以使用的特定技术:

  • 使用Python标准库加载CSV。
  • 使用NumPy加载CSV文件。
  • 使用Pandas加载CSV文件。

这篇文章的操作步骤是键入或复制粘贴每个方法,并熟悉在Python中加载机器学习数据的不同方式。

00

Python

发表评论

邮箱地址不会被公开。 必填项已用*标注

什么阻碍了你实现迈入机器学习领域的目标?

什么阻碍了你实现迈入机器学习领域的目标?

2020-04-22 机器学习

如果你在为进入机器学习领域而挣扎,感觉到有什么东西阻止了自己的开始,那么你应该看看这篇文章。 在这篇文章中,我们会讨论阻止进入机器学习领域的自我限制的信念,让你明白面临的问题。 几乎总是一种自我限制的信念阻碍了你们的进步。 也许你会在一个或多个这样的信念中看到自己。如果是这样的话, [......]

了解详情

R语言机器学习迷你课程

R语言机器学习迷你课程

2020-08-12 机器学习

在这个迷你课程中,你将发现如何开始,构建精确的模型,并自信地完成在14天内使用R预测建模机器学习项目。 这是一个重要而重要的文章。你可能想把它书签。 了解如何准备数据,拟合机器学习模型,并用我的新书评估他们在r上的预测,包括14步教程、3个项目和完整源代码。 我们开始吧。 [......]

了解详情

关于机器学习的几点思考

关于机器学习的几点思考

2020-04-26 机器学习

机器学习是一个大的、跨学科的研究领域。 你可以通过机器学习获得令人印象深刻的结果,并找到非常具有挑战性的问题的解决方案。但这只是更广泛的机器学习领域的一小部分,通常被称为预测建模或预测分析。 在这篇文章中,你将发现如何改变你对机器学习的思考方式,以便更好地为你提供机器学习实践者的服务。 [......]

了解详情

找到你的机器学习部落

找到你的机器学习部落

2020-04-26 机器学习

机器学习是一个充满算法和数据的迷人而强大的研究领域。 问题是,有这么多不同类型的人对机器学习感兴趣,每个人都有不同的需求。重要的是要了解你想要从机器学习中得到什么,并根据这些需求调整你的自学。 如果你不这样做,你很容易就会陷入困境,迷失方向,失去兴趣,得不到你想要的东西。 找到 [......]

了解详情

应用机器学习过程

应用机器学习过程

2020-04-26 机器学习

随着时间的推移,在处理应用机器学习问题时,你会开发出一种模式或流程,以快速获得良好的正常结果。 一旦开发完成,你就可以在一个又一个项目上反复使用此过程。你的流程越健壮、越发达,你就能越快地获得可靠的结果。 在这篇文章中,我想与你分享我解决机器学习问题的过程框架。 你可以将其用作下一 [......]

了解详情