Sparse Matrix Multiplied by a Vector
#Using numpy probably make it easier to implement
aDict={(1,2):3, (1,3):5 } #A Sparse Matrix, Keys are tuples of rows and columns, Values are numbers in the matrix
class sparse:
def __init__(self,n,m):
self.size=(n,m)
self.nzValues={} #nzValues denotes None Zero Values
def mult(spaMat,vec):
res=spaMat.size[0]*[0]
for e,f in spaMat.nzValues.items(): #e chooses tuples in the dict, f chooses values
res[e[0]] = vec[e[1]]*f + res[e[0]] #e[0] denotes the column part in the tuple e (first element of the tuple)
return res
s1= sparse(3,5)
s1.nzValues=aDict
print mult(s1,[1,2,3,4,5])