将 numpy 矩阵转换为 R 矩阵并保持这种状态

Convert numpy matrix to R matrix and keep it that way

我想将 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?

一种方法可能是

ro.numpy2ri.deactivate()

也可以显式调用转换(转换泛型在模块中,这里numpy2ri)。