8

csr_matrixを通じて作成されたスパース 988x1 ベクトル (の列) がありますscipy.sparse。疎行列を密行列に変換せずに平均偏差と標準偏差を取得する方法はありますか?

numpy.mean密なベクトルでのみ機能するようです。

4

1 に答える 1

8

列のスライスを実行しているため、CSR ではなく CSC を使用して行列を保存する方がよい場合があります。ただし、それはマトリックスで他に何をしているかによって異なります。

mean()CSC 行列の列の平均を計算するには、行列の関数を使用できます。

標準偏差を効率的に計算するには、もう少し手間がかかります。まず、次のようなスパース列を取得するとします。

col = A.getcol(colindex)

次に、次のように分散を計算します。

N = col.shape[0]
sqr = col.copy() # take a copy of the col
sqr.data **= 2 # square the data, i.e. just the non-zero data
variance = sqr.sum()/N - col.mean()**2
于 2013-03-29T11:39:35.603 に答える