rpy2:如何将FloatVector或Matrix转换回Python数组或列表?

10

我正在使用rpy2,遇到一个问题困扰了我很久:我知道如何将Python数组或列表转换为R(借助rpy2)可以在Python中处理的FloatVector

那么反过来呢?比如我有一个是R对象的FloatVector或者Matrix,如何将它转换回Python数组或列表?

4个回答

12

这个方法非常有效:

vector=numpy.asarray(vector_R)

4

我已经找到答案 :-). 假设vector_R是一个FloatVector。要将其转换回Python,您需要执行以下操作:

import rpy2.robjects.numpy2ri as rpyn
vector=rpyn.ri2numpy(vector_R)

就是这样!“vector”现在是一个Numpy数组。


1
一个 "numpy" 数组 ;-) Python 数组是标准库模块 "array"。 - lgautier
ri2numpy 已经不存在。 - MD004

4
在最新版本的rpy2中,您可以直接使用以下方式:
import numpy as np
array=np.array(vector_R)

1
import rpy2.robjects.numpy2ri as rpyn
vector=rpyn.ri2py(v)

在新的rpy2中,当v是向量时,它是否成立


ri2py 不再存在了。不过现在有 rpy2py,可能会取代它。 - MD004

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接