首页 > 解决方案 > numpy 将 csv 文件读取到 numpy 数组

问题描述

我是 python 新手,使用 numpy 将 csv 读入数组。所以我使用了两种方法:

方法一

train = np.asarray(np.genfromtxt(open("/Users/mac/train.csv","rb"),delimiter=","))

方法二

with open('/Users/mac/train.csv') as csvfile:
        rows = csv.reader(csvfile)
        for row in rows:
            newrow = np.array(row).astype(np.int)
            train.append(newrow)

我不确定这两种方法有什么区别?推荐使用什么?

我不关心哪个更快,因为我的数据量很小,而是更关心结果数据类型的差异。

标签: python-3.xnumpy

解决方案


你也可以使用 pandas,它使用起来更好更简单。

import pandas as pd
import numpy as np

dataset = pd.read_csv('file.csv')
# get all headers in csv
values = list(dataset.columns.values)

# get the labels, assuming last row is labels in csv
y = dataset[values[-1:]]
y = np.array(y, dtype='float32')
X = dataset[values[0:-1]]
X = np.array(X, dtype='float32')

推荐阅读