2016-12-06 3 views
0

Когда я с R diag(0.03,2) я получаю:Эквивалент диаг функция R в Numpy питона

 [,1] [,2] 
[1,] 0.03 0.00 
[2,] 0.00 0.03 

Как я могу иметь один и тот же результат в Python? Я попробовал numpy.diag(0.03,2), но получаю ошибку: ValueError: Input must be 1- or 2-d. То же самое с numpy.diagonal(0.03,2)

Спасибо за любую помощь

ответ

1

Do numpy.diag([.03]*2).

numpy.diag() принимает список диагональных компонентов, и вы можете перемножать списки в python для повторения элементов.

+2

Другим способом написания является «np.diag (np.full (2, 0.3))», который имеет то преимущество, что не создает неэффективный для python список, по крайней мере для 'N >> 2' – Eric

+0

It кажется, что 'np.eye (2) * .03' или' np.identity (2) * .03' также даст те же результаты, хотя это эквивалентно 'diag (2) * 0.3' в R. – lmo

Смежные вопросы