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])