2014-09-02 5 views
23

sagen, dass ich ein csv file.csv in diesem Format haben:Wie CSV-Datei als numpy.array in Python importieren?

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

wie die zweite Spalte als numpy.array und der dritten Spalte als eine andere, so importieren:

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

I benutze python2.7 in Ubuntu.

Thx voraus!

Antwort

38

numpy.genfromtxt() ist das Beste, was zu verwenden hier

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

können Sie numpy.loadtxt verwenden:

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]) 

Oder numpy.genfromtxt

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

Die einzige Änderung in der Argumentation ist, dass ich dtype=None verwendet, die genfromtxt erzählt den Datentyp aus den Werten zu folgern, dass es findet in der Datei.