50,000x5,000 のマトリックス (フロート) ファイルがあります。を使用 x = np.genfromtxt(readFrom, dtype=float)
してファイルをメモリにロードすると、次のエラー メッセージが表示されます。
ファイル "C:\Python27\lib\site-packages\numpy\lib\npyio.py"、1583 行目、genfromtxt for (i, converter) for enumerate(converters)])
MemoryError
Scipyを使用して各ベクトル間のユークリッド距離を計算しているため、ファイル全体をメモリにロードしたいと考えています。dis = scipy.spatial.distance.euclidean(x[row1], x[row2])
巨大な行列ファイルをメモリにロードする効率的な方法はありますか?
ありがとうございました。
Update:
私は問題を解決することができました。これが私の解決策です。それが効率的か論理的に正しいかはわかりませんが、私にとってはうまくいきます:
x = open(readFrom, 'r').readlines()
y = np.asarray([np.array(s.split()).astype('float32') for s in x], dtype=np.float32)
....
dis = scipy.spatial.distance.euclidean(y[row1], y[row2])
私のソリューションを改善するのを手伝ってください。