2014-09-02 104 views
23

说,我有以下格式的CSV FILE.CSV:如何在Python中将csv文件导入为numpy.array?

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。

Thx ahead!

回答

38

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.]) 
的最好的事情
11

您可以使用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从值推断的数据类型,它在文件中找到。