code: def moments(data,cntr):
      
      total = data.sum()
      #X, Y = np.indices(data.shape)
      #x = (X*data).sum()/total
      #y = (Y*data).sum()/total
      x,y = cntr
      xi = int(x)
      yi = int(y)
      if xi < 0 or xi >= data.shape[1] or yi < 0 or yi >= data.shape[0]:
          raise ValueError
      col = data[:, xi]
      width_x = np.sqrt(abs(((np.arange(col.size)-y)**2*col).sum()/col.sum()))
      row = data[yi, :]
      width_y = np.sqrt(abs(((np.arange(row.size)-x)**2*row).sum()/row.sum()))
      height = data.max()
      return height, x, y, width_x, width_y
docs: Returns (height, x, y, width_x, width_y)
      the gaussian parameters of a 2D distribution by calculating its
      moments.