numpy 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)
「printdata.dtype.names」も期待される出力を返します。
しかし、フィールド名で列を呼び出し始めると、厄介なことが起こります。「列」はまだ108列の配列です...
print data["EDUC"].shape
>> (1652, 108)
...そして、データセットの行よりも多くの欠落値が含まれているようです。
print np.sum(np.isnan(data["EDUC"]))
>> 27976
ここで何が問題になっているのでしょうか。ヘッダーの追加は簡単な操作ですが、私はこのバグと何時間も戦ってきました。ヘルプ!