我试图将列名添加到一个营养的 ndarray 中, 然后根据它们的名字选择列名。 但是这行不通 。 我无法辨别当我添加这些名称时, 或者后来我试图给他们打电话时, 是否出现问题 。
这是我的密码
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] ))
基于尺寸的诊断与我所期望的相符:
print len(csv_names)
>> 108
print data.shape
>> (1652, 108)
“ 打印数据. dtype. names” 也返回预期输出 。
但当我开始用他们的字段名称叫列时, 怪事就会发生。 “ 列” 仍然是一个有108列的阵列...
print data["EDUC"].shape
>> (1652, 108)
...它似乎包含的缺失值比数据集中的行还要多。
print np.sum(np.isnan(data["EDUC"]))
>> 27976
添加信头应该只是个小操作 但我和这个虫子打了好几个小时了,救命!