Python Forum
Extend my __init__ method by an extra parameter Tol
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Extend my __init__ method by an extra parameter Tol
#1
I want to extend my __init__ method by an extra parameter Tol (tolerance) which serves as a threshold for converting a given matrix to a sparse matrix. All elements of the original matrix which have an absolute value less than Tol should be considered as zeros. Give Tol a default value 0

this is my code


import numpy as np


class SparseMatrix:
 
    def __init__(self,matrix):
        self.matrix=np.asarray(matrix)
        self.intern_represent = 'CSR'
        self.intern_represent = 'CSC'
    
    @property   
    def values (self):
        return self.matrix [np.nonzero(self.matrix)]
         
      
    def __repr__(self):
        return (' A= '+ str(self.values) +
                '\nIA= ' + str(self.IA) +
                '\nJA= '+ str(self.JA))
 
    @property
    def IA (self):
        IA =[]
        IA.append (0)
        for i in range (1,np.shape(self.matrix)[0]+1):
            num=IA [i-1] + np.count_nonzero(self.matrix [i-1])
            IA.append(num)
        IA=np.asarray (IA)
        return IA
         
    @property
    def JA (self):
        index=np.nonzero(self.matrix)
        return index [1]
      
    @property   
    def number_of_nonzero(self):
        return len (self.values)
          
    def change (self,i,j,new):
        self.matrix [i][j]=new
        return new

    def ConvertCSC(self):
        return np.transpose(self.matrix)


    def CSReqaulCSC(self):
      if (self.matrix==np.transpose(self.matrix)).all():
          return True
      else:
          return False
      all
Reply


Messages In This Thread
Extend my __init__ method by an extra parameter Tol - by duyduy - May-26-2019, 11:31 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Manipulating __init__ method schniefen 5 3,527 May-06-2019, 11:22 AM
Last Post: buran

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020