code: def filter(self, given_filter, apply_zerovalue=False):
          
          get_ = self.get___method
          set_ = self.set___method
          max_value = self.max_value
          for table_id in range(self.depth):
              for cell_id in range(self.width):
                  val = get_(self, table_id, cell_id)
                  if val or apply_zerovalue:
                      val = given_filter(val)
                      val = max_value if val > max_value else val
                      set_(self, table_id, cell_id, val)
docs: Apply filter into all values
          Params
              <lambda> | <function> given_filter
              <bool> only_nonzero