2016-08-21 11 views
1

scipy.sparse.csr.csr_matrixを指定すると、対角要素を素早く返すことができますか?私はこれをやりたいscipyスパース行列の対角要素を返す

理由はDは対角エントリ(Aが対角線上の非ゼロを持つことが保証私のスパース行列、である)Aに同意する対角行列であるinv(D) Aを計算することです。

答えて

2

使用csr_matrix.diagonal()

は、行列の主対角返し

例:

>>> import numpy as np 
>>> from scipy.sparse import csr_matrix 
>>> mymat = csr_matrix((4, 4), dtype=np.int8) 
>>> mymat.diagonal() 
array([0, 0, 0, 0], dtype=int8) 
+2

*ため息*。あなたがグーグルで完全に失敗したとき:-)答えてくれてありがとう! +1(10分のロックアウト後に受け入れます) – parsiad

+1

あなたの例では、 'mymat'は密な配列です(その' toarray() ':))。まばらな対角線は密なものとはまったく一般的ではありません。 – hpaulj

+0

@hpauljの提案に感謝します。私はウォーレンの提案でポストを更新しました。両方の人が私の答えを今好きになることを願っています! :)ところで、私はrefによって動かされましたが、あなたが言うことは理にかなっています。 – gsamaras

関連する問題