code: def smear(self, sigma):
          
          diff = [self.x[i + 1] - self.x[i] for i in range(len(self.x) - 1)]
          avg_x_per_step = np.sum(diff) / len(diff)
          if len(self.ydim) == 1:
              self.y = gaussian_filter1d(self.y, sigma / avg_x_per_step)
          else:
              self.y = np.array([
                  gaussian_filter1d(self.y[:, k], sigma / avg_x_per_step)
                  for k in range(self.ydim[1])]).T
docs: Apply Gaussian smearing to spectrum y value.
  
          Args:
              sigma: Std dev for Gaussian smear function