在 Python 中将 CSV 读取为 NumPy 数组

Manav Narula 2023年2月6日
  1. 使用 numpy.genfromtxt() 函数将 CSV 数据读取到 NumPy 数组
  2. 使用 pandas 数据框将 CSV 数据读取到 NumPy 数组
  3. 使用 csv 模块将 CSV 数据读取到 NumPy 数组
在 Python 中将 CSV 读取为 NumPy 数组

本教程将讨论如何从 CSV 文件读取数据并将其存储在 numpy 数组中。

使用 numpy.genfromtxt() 函数将 CSV 数据读取到 NumPy 数组

genfromtxt() 函数通常用于从文本文件加载数据。我们可以使用此函数从 CSV 文件读取数据,并将其存储在 numpy 数组中。该函数有许多可用参数,使更容易以所需的格式加载数据。我们可以使用此函数的不同参数来指定分隔符,处理缺失值,删除指定的字符并指定数据的数据类型。

例如,

from numpy import genfromtxt

data = genfromtxt("sample.csv", delimiter=",", skip_header=1)
print(data)

输出:

[[1. 2. 3.]
 [4. 5. 6.]]

由此衍生出许多其他函数,例如 recfromtxt()recfromcsv(),它们可以执行相同的功能,但具有不同的默认值。

在下面的代码中,我们将使用 recfromcsv() 文件从 CSV 文件中读取数据。

import numpy as np

data = np.recfromcsv("sample.csv", skip_header=0)
print(data)

输出:

[(1, 2, 3) (4, 5, 6)]

请注意,我们不必将定界符指定为逗号,也不必指定其他值来指定标题行。

使用 pandas 数据框将 CSV 数据读取到 NumPy 数组

我们还可以利用 pandas 数据框将 CSV 数据读取到数组中。为此,我们将数据读取到 DataFrame 中,然后使用 pandas 库中的 values() 函数将其转换为 numpy() 数组。

以下代码实现了这一点。

from pandas import read_csv

df = read_csv("sample.csv")
data = df.values
print(data)

输出:

[[1 2 3]
 [4 5 6]]

使用 csv 模块将 CSV 数据读取到 NumPy 数组

csv 模块用于有效地将数据读取和写入 CSV 文件。此方法将使用此模块从 CSV 文件读取数据并将其存储在列表中。然后,我们将继续将此列表转换为 numpy 数组。

下面的代码将对此进行解释。

import csv
import numpy as np

with open("sample.csv", "r") as f:
    data = list(csv.reader(f, delimiter=";"))

data = np.array(data)
print(data)

输出:

[['1,2,3']
 ['4,5,6']]
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn