在 Python 中將 CSV 讀取為 NumPy 陣列
Manav Narula
2023年2月6日
2021年4月29日
-
使用
numpy.genfromtxt()
函式將 CSV 資料讀取到 NumPy 陣列 -
使用
pandas
資料框將 CSV 資料讀取到 NumPy 陣列 -
使用
csv
模組將 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']]
Author: Manav Narula
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