3000x300のマトリックスファイル(フロート)があります。読んでfloatに変換すると、Pythonのデフォルトであるfloat64が表示されます。numpyとmap()を試してfloat32()に変換しようとしましたが、どちらも非常に非効率的です。
私のコード:
x = open(readFrom, 'r').readlines()
y = [[float(i) for i in s.split()] for s in x]
所要時間:0:00:00.996000
numpyの実装:
x = open(readFrom, 'r').readlines()
y = [[np.float32(i) for i in s.split()] for s in x]
所要時間:0:00:06.093000
地図()
x = open(readFrom, 'r').readlines()
y = [map(np.float32, s.split()) for s in x]
所要時間:0:00:05.474000
どうすればfloat32に非常に効率的に変換できますか?
ありがとうございました。
Update:
numpy.loadtxt()
またはnumpy.genfromtxt()
巨大なファイルに対して機能しない(メモリエラーを与える)。これに関連する質問を投稿しました。ここで紹介したアプローチは、巨大なマトリックスファイル(50,000x5000)でうまく機能します。ここに質問があります