Skip to content

Latest commit

 

History

History
189 lines (122 loc) · 6.96 KB

load-machine-learning-data-python.md

File metadata and controls

189 lines (122 loc) · 6.96 KB

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

原文: https://machinelearningmastery.com/load-machine-learning-data-python/

您必须能够在启动机器学习项目之前加载数据。

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

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

让我们开始吧。

  • 2017 年 3 月更新:更改从二进制('rb')到 ASCII('rt)的加载。
  • 更新 March / 2018 :添加了备用链接以下载数据集,因为原始图像已被删除。
  • 更新 March / 2018 :更新了来自 URL 示例的 NumPy 加载,以便与 Python 3 一起工作。

How To Load Machine Learning Data in Python

如何在 Python 中加载机器学习数据 照片由 Ann Larie Valentine ,保留一些权利。

加载 CSV 数据时的注意事项

从 CSV 文件加载机器学习数据时需要考虑许多因素。

作为参考,您可以通过查看标题为通用格式和逗号分隔值(CSV)文件的 MIME 类型的评论的 CSV 请求,了解有关 CSV 文件期望的大量信息。

CSV 文件标题

您的数据是否有文件头?

如果是这样,这可以帮助自动为每列数据分配名称。如果没有,您可能需要手动命名属性。

无论哪种方式,您都应明确指定 CSV 文件在加载数据时是否具有文件头。

评论

您的数据有评论吗?

CSV 文件中的注释在行的开头用散列(“#”)表示。

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

分隔符

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

您的文件可以使用不同的分隔符,如 tab(“\ t”),在这种情况下,您必须明确指定它。

行情

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

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

机器学习数据加载秘籍

每个秘籍都是独立的。

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

如果您对这些秘籍或建议的改进有任何疑问,请发表评论,我会尽力回答。

使用 Python 标准库加载 CSV

Python API 提供模块CSV和函数 reader(),可用于加载 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.reader()函数的更多信息,请参阅 Python API 文档中的 CSV 文件读取和写入

使用 NumPy 加载 CSV 文件

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

此函数假定没有标题行,并且所有数据都具有相同的格式。下面的示例假定文件 pima-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 加载相同的数据集,如下所示:

注意:此示例假设您使用的是 Python 3。

# 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 ,您可以立即开始汇总和绘图。

以下示例假定' pima-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 中加载机器学习数据的不同方法。

您是否有任何关于在 Python 或此帖中加载机器学习数据的问题?在评论中提出您的问题,我会尽力回答。