将 numpy 数组转换为 Matrix rpy2, Kmeans

Han*_*Goc 2 rpy2

我有一个 numpy 二维数组 self.sub,我想在 rpy2 kmeans 中使用它。k = robjects.r.kmeans(self.sub,2,20) 我总是收到以下错误:valueError:目前对该类型无能为力!我能做什么?

sav*_*ent 5

从 rpy2文档中,R 矩阵只是带有暗属性集的向量。所以对于一个 numpy 二维数组 x

import rpy2.robjects as robj

nr, nc = x.shape
xvec = robj.FloatVector(x.transpose().reshape((x.size))
xr = robj.r.matrix(xvec, nrow=nr, ncol=nc)
Run Code Online (Sandbox Code Playgroud)

您必须转置 numpy 数组,因为 R 按列填充矩阵。

编辑:实际上,您可以在 R 矩阵函数中设置 byrow=True ,然后您就不需要转置了。