さまざまな種類の scipy.sparse 行列があります: csr_matrix は行列代数では高速ですが、更新は遅く、coo_matrix は代数では遅く、更新は高速です。それらはscipy.org/SciPyPackages/Sparseで説明されています。
疎行列が 99 % 0 の場合、sparsematrix + 1
99 % は 1 -- 密です。
たとえば、後で使用する
場所に
手動で展開できます-短いコードでは可能ですが、面白くありません。
y = dot( x + bias, npvec )
dot( x, npvec ) + bias * npvec
y
試してみるためにIPythonを強くお勧めします。
# add some combinations of scipy.sparse matrices + numpy vecs
# see http://www.scipy.org/SciPyPackages/Sparse
from __future__ import division
import numpy as np
from scipy import sparse as sp
npvec = np.tile( [0,0,0,0,1.], 20 )
Acsr = sp.csr_matrix(npvec)
Acoo = Acsr.tocoo()
for A in (Acsr, Acoo, npvec):
print "\n%s" % type(A)
for B in (Acsr, Acoo, npvec):
print "+ %s = " % type(B) ,
try:
AplusB = A + B
print type(AplusB)
except StandardError, errmsg:
print "Error", errmsg