преобразовать массив Numpy в Matrix RPY2, Kmeans

StackOverflow https://stackoverflow.com/questions/4592911

  •  15-10-2019
  •  | 
  •  

Вопрос

У меня есть Numpy 2D Array Self. SUB, и я хочу использовать его в RPY2 KMEAN. k = robjects.r.kmeans (self.sub, 2,20) Я всегда получаю следующую ошибку: valueError: ничего не может быть сделано для этого типа в данный момент! что я могу сделать?

Это было полезно?

Решение

От RPY2 док, R матрицы - это просто векторы с их набором атрибутов Dim. Итак, для двухмерного массива 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)

Вы должны перенести массив Numpy, потому что R заполняет матрицы столбцами.

РЕДАКТИРОВАТЬ: На самом деле, вы можете просто установить Byrow = true в функции R Matrix, и тогда вам не нужно будет транспонировать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top