2016-12-06 10 views
0

私はR diag(0.03,2)を行うと、私は得る:等価DIAG R機能

 [,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。任意のヘルプ

答えて

1

ドゥnumpy.diag([.03]*2)ためnumpy.diagonal(0.03,2)

おかげで同じ。

numpy.diag()は対角成分のリストを取り、要素を繰り返すためにPythonのリストを掛けることができます。

+2

もう一つの方法は 'np.diag(np.full(2,0.3))'です。少なくとも 'N >> 2'ではメモリ非効率なPythonリストを作成しないという利点があります。 – Eric

+0

Rの 'diag(2)* 0.3'と同じですが、' np.eye(2)* .03'や 'np.identity(2)* .03'でも同じ結果が出るようです。 – lmo