Найти - Пользователи
Полная версия: заполнение массива NumPy из текстового файла
Начало » Python для экспертов » заполнение массива NumPy из текстового файла
1
asv13
Возникла необходимость загнать в массив числа float (~ 44 млн. чисел) из текстового файла, значения разделены пробелами. Файл ~600 Мб.

пробовал готовые функции:

scipy.io.read_array()
numpy.loadtxt()
numpy.fromfile()
pylab.load()

в каждом случае - длительное скачкообразное забивание памяти и вылет с ошибкой MemoryError.

самым простым оказалось

corn = zeros(43915080)
cnt = 0
for line in open(corn_file, ‘r’):
for k in map(float, line.split()):
corn = k
cnt += 1

но это строка за строкой, хоть и без загрузки всего файла
может есть более быстрые решения (без С конечно) ?
Ferroman
Я бы перегнал все в базу, а потом уже с ней работал. БД лучше справляется с огромными масивами данных. Да и функционал можно на уровне базы дописать, что б быстрее работало.
shiza
а если загнать его в строку и попробовать функцию frombuffer()?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB