1. ホーム
  2. python

[解決済み] numpy.matrixやarrayをscipy sparse matrixに変換する方法

2022-11-18 09:55:54

質問

SciPy のスパース行列では todense() または toarray() を使って、NumPyの行列や配列に変換することができます。逆行列を行うための関数は何ですか?

検索してみましたが、どのようなキーワードでヒットすればいいのかさっぱりわかりません。

どのように解決するのですか?

スパース行列を初期化する際に、numpyの配列や行列を引数として渡すことができます。例えばCSR行列の場合、以下のようになります。

>>> import numpy as np
>>> from scipy import sparse
>>> A = np.array([[1,2,0],[0,0,3],[1,0,4]])
>>> B = np.matrix([[1,2,0],[0,0,3],[1,0,4]])

>>> A
array([[1, 2, 0],
       [0, 0, 3],
       [1, 0, 4]])

>>> sA = sparse.csr_matrix(A)   # Here's the initialization of the sparse matrix.
>>> sB = sparse.csr_matrix(B)

>>> sA
<3x3 sparse matrix of type '<type 'numpy.int32'>'
        with 5 stored elements in Compressed Sparse Row format>

>>> print sA
  (0, 0)        1
  (0, 1)        2
  (1, 2)        3
  (2, 0)        1
  (2, 2)        4