disons que j'ai un fichier.csv csv dans ce format:
dfaefew,432,1
vzcxvvz,300,1
ewrwefd,432,0
comment importer la deuxième colonne sous la forme numpy.array et la troisième sous la forme d'une autre, comme ceci:
second = np.array([432, 300, 432])
third = np.array([1, 1, 0])
J'utilise python2.7 dans Ubuntu.
Merci d'avance!
numpy.genfromtxt()
est la meilleure chose à utiliser ici
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.])
Vous pouvez utiliser 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])
In [19]: second, third = genfromtxt('data.csv', delimiter=',', usecols=(1,2), unpack=True, dtype=None)
Le seul changement dans les arguments est que j'ai utilisé dtype=None
, qui indique à genfromtxt
de déduire le type de données à partir des valeurs trouvées dans le fichier.