code: def _adj_op_method(self, data):
          
  
          if isinstance(self.weights, type(None)):
  
              return np.mean([operator.adj_op(x) for x, operator in
                             zip(data, self.operators)], axis=0)
  
          else:
  
              return np.sum([weight * operator.adj_op(x) for x, operator,
                            weight in zip(data, self.operators, self.weights)],
                            axis=0)
docs: Adjoint operator
  
          This method returns the combination of the result of all of the
          adjoint operators. If weights are provided the comibination is the sum
          of the weighted results, otherwise the combination is the mean.
  
          Parameters
          ----------
          data : np.ndarray
              Input data array
  
          Returns
          -------
          np.ndarray adjoint operation results