У меня есть файл R-объекта (.rda), который я хотел бы загрузить в массив numpy в python.К сожалению, следующий код выдает MemoryError
, который, как мне кажется, не доходит до конца.
import numpy as np
import rpy2.robjects as robjects
robjects.r['load']('myrobject.rda')
rils = np.array(robjects.r['myobjectname'])
Ошибка генерируется относительно самой нижней строки кода, поэтому проблема заключается впреобразование объекта в массив Numpy, без загрузки объекта.Данные в основном представляют собой числа с плавающей запятой от одной до трех цифр в диапазоне от 0 до 1, но там также есть некоторые символы.
На моей машине установлена 64-битная версия Ubuntu 16.04 и работает Python 3.5.2 64-битнаяТаким образом, запуск 32-битной системы не является проблемой, как это было с подобными постами, которые я видел.У меня 16 ГБ оперативной памяти.Когда я использую htop
, чтобы посмотреть на использование памяти во время выполнения этого кода, он постепенно увеличивается до примерно 4,5 ГБ перед выходом и выдачей ошибки.
Размер объекта, который я пытаюсь загрузить, составляет 113,7 МБ., хотя я понимаю, что файлы .rda сжимаются.
Я никогда раньше не видел подобной ошибки, и я был бы признателен за любую помощь, чтобы выяснить, что является причиной, и что я должен сделать, чтобы исправить это..
РЕДАКТИРОВАТЬ
Поскольку меня спросили, вот точная ошибка.
Traceback (most recent call last):
File "rils_ga.py", line 10, in <module>
rils = np.array(robjects.r['Aprobma'])
MemoryError
Aprobma
соответствует myobjectname
, который я использовал в исходном посте.