我有一个50,000x5,000的矩阵(float)文件。当使用
谢谢。
更新: 我设法解决了这个问题。以下是我的解决方案。我不确定它是否高效或逻辑上正确,但对我来说可以正常工作:
x = np.genfromtxt(readFrom, dtype=float)
将文件加载到内存中时,我会收到以下错误消息:
我想将整个文件加载到内存中,因为我正在使用Scipy计算每个向量之间的欧几里得距离。文件"C:\Python27\lib\site-packages\numpy\lib\npyio.py"第1583行, in genfromtxt for (i, converter) in enumerate(converters)])
MemoryError
dis = scipy.spatial.distance.euclidean(x[row1], x[row2])
有没有一种有效的方法将巨大的矩阵文件加载到内存中?谢谢。
更新: 我设法解决了这个问题。以下是我的解决方案。我不确定它是否高效或逻辑上正确,但对我来说可以正常工作:
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])
请帮助我改进我的解决方案。