Programowo dodaj nazwy kolumn do numpy ndarray

Próbuję dodać nazwy kolumn do numpy ndarray, a następnie wybrać kolumny według ich nazw. Ale to nie działa. Nie mogę powiedzieć, czy problem występuje, gdy dodaję nazwiska, czy później, gdy próbuję do nich zadzwonić.

Oto mój kod.

data = np.genfromtxt(csv_file, delimiter=',', dtype=np.float, skip_header=1)

#Add headers
csv_names = [ s.strip('"') for s in file(csv_file,'r').readline().strip().split(',')]
data = data.astype(np.dtype( [(n, 'float64') for n in csv_names] ))

Diagnostyka oparta na wymiarach odpowiada temu, czego oczekuję:

print len(csv_names)
>> 108
print data.shape
>> (1652, 108)

„print data.dtype.names” zwraca również oczekiwane wyjście.

Ale kiedy zaczynam nazywać kolumny według nazw pól, zdarzają się przerażające rzeczy. „Kolumna” jest nadal tablicą ze 108 kolumnami…

print data["EDUC"].shape
>> (1652, 108)

... i wydaje się, że zawiera więcej brakujących wartości niż w zestawie danych.

print np.sum(np.isnan(data["EDUC"]))
>> 27976

Jakiś pomysł, co się tutaj dzieje? Dodawanie nagłówków powinno być banalną operacją, ale walczę z tym błędem od wielu godzin. Wsparcie!

questionAnswers(2)

yourAnswerToTheQuestion