Take the tour ×  I'm trying to add column names to a numpy
ndarray, then select columns by their names. But it doesn't
work. I can't tell if the problem occurs when I add the names,
or later when I try to call them.  Here's my code.  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] ))
Dimension-based diagnostics match what I expect:  print
len(csv_names) >> 108 print data.shape >> (1652, 108)  "print
data.dtype.names" also returns the expected output.  But when I
start calling columns by their field names, screwy things
happen. The "column" is still an array with 108 columns...
print data["EDUC"].shape >> (1652, 108)  ... and it appears to
contain more missing values than there are rows in the data set.
print np.sum(np.isnan(data["EDUC"])) >> 27976  Any idea what's
going wrong here? Adding headers should be a trivial