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
2
A
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.