私は疎行行列の各行の非ゼロ値の平均を計算しようとしています。マトリックスの平均メソッドを使用して、それをしない:スパース行列のゼロ以外の値の平均?
>>> from scipy.sparse import csr_matrix
>>> a = csr_matrix([[0, 0, 2], [1, 3, 8]])
>>> a.mean(axis=1)
matrix([[ 0.66666667],
[ 4. ]])
を以下の作品が、大きな行列のために遅いです:速い方法があるかどう
>>> import numpy as np
>>> b = np.zeros(a.shape[0])
>>> for i in range(a.shape[0]):
... b[i] = a.getrow(i).data.mean()
...
>>> b
array([ 2., 4.])
誰も私に教えていただけますか?
(x,y,z)=scipy.sparse.find(a)
返す行(x
)、スパース行列の列(y
)と値(z
):
優秀、ありがとう – batsc