質問: np.genfromtxt("hoge.tsv", delimiter="\t", names=True, dtype=float, converters={1: lambda x: x.decode('utf_8')}) ``` ### 試したこと hoge.tsvはutf-8できちんとコーディングできていることを確認しています。 一行目がヘッダー、二行目以下は小数や整数が並んでいます。 一行目のヘッダーのところにのみ日本語が用いられていて、 「日付_2015年」「性別」のようなヘッダーがついています。 ヘッダー行を抜かしたファイルを作成したところ、正しく読み込むことができました。 ``` import sys sys.getdefaultencoding() ``` この結果は 'utf-8' とpython自体のデフォルトはutf-8であることは確認しています。 ### 補足情報(言語/FW/ツール等のバージョンなど) python3.4, OSX 10.9.5, numpy 1.11.0 を用いています。 どのようにすればヘッダー行を読み込むことができるのでしょうか。 ここやここなどを参考にしています。 dtypeの指定の仕方が間違っているのかと思うのですが、これ以上どのようにすれば良いのかが分かりません。 ご教示いただけますと幸いです。
回答: ↓で先に回答出てしまいましたが、同じ結論です。 python - numpy genfromtxt でutf-8ファイルを読み込む際のUnicodeDecodeErrorについて - スタック・オーバーフロー > > `_bytes_to_name()` ではヘッダ行のバイト列を ASCII コーデックにデコードしようとしてエラーが発生する事になります。 > > > ヘッダーの列名が必要なら、上記回答のように別途読み込んで作成する、ですかね。 ヘッダーの列名が不要なら、`Names=True`の代わりに`skip_header=1`をセットして読み飛ばしてしまえばOKです。 参考リンク: numpy.genfromtxt — NumPy v1.11 Manual