(非常に大きな、空白で区切られた、2 列の) テキスト ファイルからデータを Python 辞書に読み込みたいと考えています。forループでこれをやろうとしましたが、遅すぎました。numpy loadtxt を使用して構造体配列に読み取り、それを辞書に変換すると、はるかに高速になります。
data = np.loadtxt('filename.txt', dtype=[('field1', 'a20'), ('field2', int)], ndmin=1)
result = dict(data)
しかし、これは確かに最善の方法ではありませんか?何かアドバイス?
他に何かが必要な主な理由は、次のものが機能しないことです。
data[0]['field1'].split(sep='-')
次のエラー メッセージが表示されます。
TypeError: Type str doesn't support the buffer API
split() メソッドが存在する場合、なぜそれを使用できないのですか? 別の dtype を使用する必要がありますか? または、テキスト ファイルを読み取る別の (高速な) 方法はありますか? 私が見逃しているものは他にありますか?
バージョン: python バージョン 3.3.2 numpy バージョン 1.7.1
編集:data['field1'].split(sep='-')
に
変更data[0]['field1'].split(sep='-')