gpt4 book ai didi

python - 尝试将 R 对象文件加载到 python numpy 数组中时出现内存错误

转载 作者:太空宇宙 更新时间:2023-11-03 21:48:26 26 4
gpt4 key购买 nike

我有一个 R 对象 (.rda) 文件,我想将其加载到 python 中的 numpy 数组中。不幸的是,下面的代码产生了一个 MemoryError ,我似乎无法深入了解。

import numpy as np
import rpy2.robjects as robjects

robjects.r['load']('myrobject.rda')
rils = np.array(robjects.r['myobjectname'])

错误是针对代码的最底行引发的,因此问题是将对象转换为 numpy 数组,而不是加载对象。数据主要是 0 到 1 之间的一到三位 float ,但其中也有一些字符。

我的机器运行的是 Ubuntu 16.04 的 64 位版本,并且运行的是 python 3.5.2 64 位,因此运行 32 位任何东西都不是这里的问题,因为它与我见过的相关帖子有关。我有 16 GB 内存。当我使用 htop 查看执行此代码期间的内存使用情况时,它逐渐增加到大约 4.5 GB,然后退出并引发错误。

我尝试加载的对象大小为 113.7MB,但我的理解是 .rda 文件已压缩。

我以前从未见过这样的错误,如果您能帮助我找出导致该错误的原因以及我应该采取哪些措施来修复它,我将不胜感激。

编辑

既然有人问我,这就是确切的错误。

Traceback (most recent call last):
File "rils_ga.py", line 10, in <module>
rils = np.array(robjects.r['Aprobma'])
MemoryError

Aprobma 对应于我在原始帖子中使用的 myobjectname

最佳答案

如果错误仅发生在该行

rils = np.array(robjects.r['Aprobma'])

这似乎表明该对象已从 .rda 文件成功加载。在这里,您将至少复制 R 对象中的数据,以便创建 numpy 数组(加上执行转换时的最终临时对象)。您是否尝试使用 asarray 来避免重复(请参阅 https://rpy2.github.io/doc/v2.9.x/html/numpy.html#from-rpy2-to-numpy )?

关于python - 尝试将 R 对象文件加载到 python numpy 数组中时出现内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52299808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com