python-3.x - 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)
我不确定这两种方法有什么区别?推荐使用什么?
我不关心哪个更快,因为我的数据量很小,而是更关心结果数据类型的差异。
解决方案
你也可以使用 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')
推荐阅读
- linux - 如何在运行多个命令 Linux 时并行运行 ssh 连接
- java - Java,不能 Tesseract+Tika
- c - HID 操纵杆可与现代游戏配合使用
- azure - 如何从自托管 Windows 代理上的 Azure DevOps 管道运行 Azure CLI 任务?
- python - 为什么每个请求中的 ID 都不同?
- c++ - SFINAE 没有正确判断方法是否存在
- python - 如何在 Python 的数据框中创建两列的交叉表并在输出中生成总行和列?
- c# - Pop Async 删除内容页面资源标题
- python - 裁剪和保存 Tensorflow 对象检测 API 中的检测
- android - 如何在android studio中仅删除xlarge的布局?