2016-10-13 3 views
0

Я пытаюсь прочитать CSV-файл (содержащий один столбец строк и один из целых чисел) в матрицу с использованием genfromtxt, а затем использовать slicing to получите только столбец, содержащий строковые значения, и загрузите его в массив для дальнейшей обработки.Невозможно использовать разбиение столбцов (правильно) в матрице с данными, считываемыми из CSV в Python

CSV файла:

explore,1043 
sky, 585 
nikon, 552 
2007, 552 
.... 

Я использую genfromtxt загрузить CSV:

my_data = np.genfromtxt('c:/tags.csv', delimiter=',') 

и когда я пытаюсь разрезать матрицу, чтобы получить столбец, содержащий строки только:

print my_data[:,0] 

Я получаю следующее:

[ nan nan nan 2007. nan nan nan nan nan nan .... 

Что кажется, что он жалуется с типом данных, то я пытаюсь определить типы данных, содержащиеся в CSV:

my_data = np.genfromtxt('c:/tags.csv', dtype = [('mystring','S5'), ('myint','i8')], delimiter=',') 

Я получаю массив кортежей вместо матрицы ....

[('flower', 1043L) ('sky', 585L) ('nikon', 552L) ('2007', 552L) ..... ] 

Что я делаю неправильно ???

ответ

0

Если вы заинтересованы только в первом столбце, вы можете загрузить CSV как 2D массив строк:

my_data = np.genfromtxt('c:/tags.csv', delimiter=',', dtype='S') 
print my_data[:, 0] 

результат:

['explore' 'sky' 'nikon' '2007'] 
+0

Ах спасибо человеку! dtype = 'S' настолько простой, но так мощный !!! – Artemis

+0

@Artemis приветствую :) –

 Смежные вопросы

  • Нет связанных вопросов^_^