将numpy矩阵转换为R矩阵并保持这种方式

时间:2015-06-18 16:25:02

标签: python r numpy rpy2

我希望将numpy矩阵转换为R矩阵。我知道你要这样做:

from rpy2 import robjects as ro
ro.conversion.py2ri = ro.numpy2ri
ro.numpy2ri.activate()

然后建立一个R矩阵:

mat_r = ro.r.matrix(mat_py)

但问题是,每当我在python中引用新矩阵时,它就会被转换回numpy矩阵。例如,我需要设置行名和列名,但这样做会导致:

mat_r.rownames = numpy.array([1,2,3])
AttributeError: 'numpy.ndarray' object has no attribute 'rownames'

任何人都知道如何将我闪亮的新r矩阵保持为r矩阵,并且停止再次成为一个ndarray?

1 个答案:

答案 0 :(得分:1)

一种方式可能是

ro.numpy2ri.deactivate()

也可以明确调用转换(转换泛型位于模块中,此处为numpy2ri)。