Sparse Matrix Multiplied by a Vector
  1. #Using numpy probably make it easier to implement
  2. aDict={(1,2):3, (1,3):5 } #A Sparse Matrix, Keys are tuples of rows and columns, Values are numbers in the matrix
  3. class sparse:
  4. def __init__(self,n,m):
  5. self.size=(n,m)
  6. self.nzValues={} #nzValues denotes None Zero Values
  7.  
  8. def mult(spaMat,vec):
  9. res=spaMat.size[0]*[0]
  10. for e,f in spaMat.nzValues.items(): #e chooses tuples in the dict, f chooses values
  11. 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)
  12. return res
  13.  
  14. s1= sparse(3,5)
  15. s1.nzValues=aDict
  16. print mult(s1,[1,2,3,4,5])