С 2 копиями вашей строки выборки:
In [140]: data = np.genfromtxt(txt, dtype=None, delimiter=';', encoding=None)
In [141]: data
Out[141]:
array([(47, '"university.degree"', '"yes"', 176, 1, 93.994, -36.4, 4.857, '"no"'),
(47, '"university.degree"', '"yes"', 176, 1, 93.994, -36.4, 4.857, '"no"')],
dtype=[('f0', '<i8'), ('f1', '<U19'), ('f2', '<U5'), ('f3', '<i8'), ('f4', '<i8'), ('f5', '<f8'), ('f6', '<f8'), ('f7', '<f8'), ('f8', '<U4')])
In [142]: data.shape
Out[142]: (2,)
In [143]: data.dtype
Out[143]: dtype([('f0', '<i8'), ('f1', '<U19'), ('f2', '<U5'), ('f3', '<i8'), ('f4', '<i8'), ('f5', '<f8'), ('f6', '<f8'), ('f7', '<f8'), ('f8', '<U4')])
Это обычный структурированный массив - data
- это 1d массив с 8 полями.Поля имеют dtype
, который соответствует типу float, integer или string, который является общим для каждого столбца.
Доступ к полям осуществляется по имени, а не по номеру столбца:
In [144]: data['f0']
Out[144]: array([47, 47])
In [145]: data['f1']
Out[145]: array(['"university.degree"', '"university.degree"'], dtype='<U19')
Обратите внимание, что я включилencoding=None
.Я не совсем уверен, когда это необходимо, но это легко включить.