code: def reweight(self, data):
          r
  
          print(' - Reweighting: {}'.format(self._rw_num))
          self._rw_num += 1
  
          data = check_float(data)
  
          if data.shape != self.weights.shape:
              raise ValueError('Input data must have the same shape as the '
                               'initial weights.')
  
          self.weights *= (1.0 / (1.0 + np.abs(data) / (self.thresh_factor *
                           self.original_weights)))
docs: r"""Reweight
  
          This method implements the reweighting from section 4 in [CWB2007]_
  
          Notes
          -----
  
          Reweighting implemented as:
  
          .. math::
  
              w = w \left( \frac{1}{1 + \frac{|x^w|}{n \sigma}} \right)