code: def gradient(self):
          
          if getattr(self, '_gradient_array_', None) is None:
              self._gradient_array_ = np.empty(self._realshape_, dtype=np.float64)
          return self._gradient_array_
docs: Return a view on the gradient, which is in the same shape as this parameter is.
          Note: this is not the real gradient array, it is just a view on it.
  
          To work on the real gradient array use: self.full_gradient