在 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