-->

与rpy2创建临时数据框:内存问题(Create temporary dataframe with

2019-10-20 19:45发布

这个问题是相似的,但比我更简单的前一个 。 下面是我用用rpy2创建从巨蟒[R dataframes的代码:

import numpy as np
from rpy2 import robjects

Z = np.zeros((10000, 500))
df = robjects.r["data.frame"]([robjects.FloatVector(column) for column in Z.T])

我的问题是,用它反复导致巨大的内存消耗。 我试图从适应的想法在这里 ,但没有成功。 我怎么能转换许多numpy的阵列到数据帧由R治疗方法不使用逐渐我所有的记忆?

Answer 1:

您应该确保您使用最新版本的rpy2的。 随着rpy2版本2.4.2,以下很好地工作:

import gc

import numpy as np
from rpy2 import robjects
from rpy2.robjects.numpy2ri import numpy2ri


for i in range(100):
    print i
    Z = np.random.random(size=(10000, 500))
    matrix = numpy2ri(Z)
    df = robjects.r("data.frame")(matrix)

    gc.collect()

内存利用率不超过我的电脑上600 MB。



文章来源: Create temporary dataframe with rpy2: memory issue