【问题标题】:Create temporary dataframe with rpy2: memory issue使用 rpy2 创建临时数据帧:内存问题
【发布时间】:2014-10-23 13:31:47
【问题描述】:

这个问题与我的previous one 类似,但比我的previous one 简单。 这是我使用 rpy2 从 python 创建 R 数据帧的代码:

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])

我的问题是重复使用它会导致大量内存消耗。 我试图从here 改编这个想法,但没有成功。 如何在不逐渐使用所有内存的情况下将许多 numpy 数组转换为数据框以供 R 方法处理?

【问题讨论】:

    标签: python r numpy rpy2


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-15
      • 2017-11-13
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 2011-07-04
      • 2021-08-21
      • 1970-01-01
      相关资源
      最近更新 更多