Подтвердить что ты не робот

Как импортировать файл csv как numpy.array в python?

Скажем, у меня есть файл 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])

Я использую python2.7 в Ubuntu.

Вперёд!

4b9b3361

Ответ 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.])

Ответ 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 выводить тип данных из значений, которые он находит в файле.