У меня есть матричный (плавающий) файл размером 50 000x5 000. при использовании x = np.genfromtxt(readFrom, dtype=float) для загрузки файла в память я получаю следующее сообщение об ошибке:
Файл "C:\Python27\lib\site-packages\numpy\lib\npyio.py", строка 1583, в genfromtxt для (i, конвертер) в enumerate(конвертеры)])
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])
Пожалуйста, помогите мне улучшить мое решение.