1. ホーム
  2. python

[解決済み] Scipy の疎な行列の乗算

2022-02-12 01:33:23

質問

numpyの配列を使って行列同士の掛け算をする例です。

import numpy as np
m = np.array([[1,2,3],[4,5,6],[7,8,9]])
c = np.array([0,1,2])
m * c
array([[ 0,  2,  6],
       [ 0,  5, 12],
       [ 0,  8, 18]])

mがscipyのスパースCSR行列の場合、同じことをするにはどうしたらよいでしょうか?これは次元の不一致をもたらします。

sp.sparse.csr_matrix(m)*sp.sparse.csr_matrix(c)

解決方法は?

を呼び出すことができます。 multiply メソッドを csr_matrix を使用してポイントワイズ乗算を行います。

sparse.csr_matrix(m).multiply(sparse.csr_matrix(c)).todense()

# matrix([[ 0,  2,  6],
#         [ 0,  5, 12],
#         [ 0,  8, 18]], dtype=int64)