如何在python中将csv文件导入为numpy.array? [复制]

Posted

技术标签:

【中文标题】如何在python中将csv文件导入为numpy.array? [复制]【英文标题】:How to import csv file as numpy.array in python? [duplicate] 【发布时间】:2014-10-26 05:00:28 【问题描述】:

假设我有一个这种格式的 csv file.csv:

dfaefew,432,1
vzcxvvz,300,1
ewrwefd,432,0

如何将第二列导入为 numpy.array 并将第三列导入为另一列,如下所示:

second = np.array([432, 300, 432])
third = np.array([1, 1, 0])

我在 Ubuntu 中使用 python2.7。

谢谢!

【问题讨论】:

【参考方案1】:

numpy.genfromtxt() 是这里最好用的东西

import numpy as np
csv = np.genfromtxt ('file.csv', delimiter=",")
second = csv[:,1]
third = csv[:,2]

>>> second
Out[1]: array([ 432.,  300.,  432.])

>>> third
Out[2]: array([ 1.,  1.,  0.])

【讨论】:

genfromtxt 在我的用例中比 loadtxt 效果更好,我不得不添加 dtype=None 因为我的数据混合了我正在读取的数据类型。仅供参考....【参考方案2】:

你可以使用numpy.loadtxt:

In [15]: !cat data.csv
dfaefew,432,1
vzcxvvz,300,1
ewrwefd,432,0

In [16]: second, third = loadtxt('data.csv', delimiter=',', usecols=(1,2), unpack=True, dtype=int)

In [17]: second
Out[17]: array([432, 300, 432])

In [18]: third
Out[18]: array([1, 1, 0])

numpy.genfromtxt

In [19]: second, third = genfromtxt('data.csv', delimiter=',', usecols=(1,2), unpack=True, dtype=None)

参数的唯一变化是我使用了dtype=None,它告诉genfromtxt 从它在文件中找到的值推断数据类型。

【讨论】:

以上是关于如何在python中将csv文件导入为numpy.array? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中将 CSV 记录导入 MySQL 数据库

在 Python 中将 .csv 值作为单个列表导入

如何在 Python 中将多个 .txt 文件转换为 .csv 文件

如何在 Python 中将 Azure Blob 文件 CSV 转换为 Excel

如何在windows的“omnidb”中将csv文件数据导入postgresql

如何通过在 Python 中将两个列表合并为一个,使用 CSV 模块或 Pandas 写入 csv 或 Excel 文件?