原文: 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 一起工作。
如何在 Python 中加载机器学习数据 照片由 Ann Larie Valentine ,保留一些权利。
从 CSV 文件加载机器学习数据时需要考虑许多因素。
作为参考,您可以通过查看标题为通用格式和逗号分隔值(CSV)文件的 MIME 类型的评论的 CSV 请求,了解有关 CSV 文件期望的大量信息。
您的数据是否有文件头?
如果是这样,这可以帮助自动为每列数据分配名称。如果没有,您可能需要手动命名属性。
无论哪种方式,您都应明确指定 CSV 文件在加载数据时是否具有文件头。
您的数据有评论吗?
CSV 文件中的注释在行的开头用散列(“#”)表示。
如果您的文件中有注释,则根据用于加载数据的方法,您可能需要指明是否期望注释以及期望表示注释行的字符。
用于分隔字段中值的标准分隔符是逗号(“,”)字符。
您的文件可以使用不同的分隔符,如 tab(“\ t”),在这种情况下,您必须明确指定它。
有时字段值可以包含空格。在这些 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 和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 和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 或此帖中加载机器学习数据的问题?在评论中提出您的问题,我会尽力回答。