Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用rpy2创建临时数据帧:内存问题_Python_R_Numpy_Rpy2 - Fatal编程技术网

Python 使用rpy2创建临时数据帧:内存问题

Python 使用rpy2创建临时数据帧:内存问题,python,r,numpy,rpy2,Python,R,Numpy,Rpy2,这个问题类似于我的问题,但比我的问题简单。 下面是我使用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]) 我的问题是重复使用它会导致巨大的内存消耗。 我试着把这个想法改编成电影,但没有成功。 如何在

这个问题类似于我的问题,但比我的问题简单。 下面是我使用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])
我的问题是重复使用它会导致巨大的内存消耗。 我试着把这个想法改编成电影,但没有成功。
如何在不逐渐使用所有内存的情况下,将许多numpy数组转换为dataframe,以便通过R方法进行处理?

您应该确保使用的是最新版本的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