2011-01-04 7 views
2

Ich habe eine numpy 2D-Array self und ich möchte es in rpy2 Kmeans verwenden. k = robjects.r.kmeans (self_2,20) ich bekomme immer den folgenden Fehler: valueError: nichts kann für den Typ im Moment getan werden! was kann ich tun?konvertieren numpy Array zu Matrix rpy2, Kmeans

Antwort

4

Aus der rpy2 docs, R-Matrizen sind nur Vektoren mit ihren Dim-Attribut-Set. Also für ein numpy zweidimensionalen Array 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) 

Sie haben die numpy Array transponieren, weil R-Matrizen durch Spalten füllt.

Edit: Eigentlich könnte man in der R-Matrix-Funktion einfach byrow = True setzen, und dann müsste man nicht transponieren.