如何在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 中将多个 .txt 文件转换为 .csv 文件
如何在 Python 中将 Azure Blob 文件 CSV 转换为 Excel
如何在windows的“omnidb”中将csv文件数据导入postgresql
如何通过在 Python 中将两个列表合并为一个,使用 CSV 模块或 Pandas 写入 csv 或 Excel 文件?