code: def reduce(self, dimensions=[], function=None, spreadfn=None, **reductions):
          
          if any(dim in self.vdims for dim in dimensions):
              raise Exception("Reduce cannot be applied to value dimensions")
          function, dims = self._reduce_map(dimensions, function, reductions)
          dims = [d for d in self.kdims if d not in dims]
          return self.aggregate(dims, function, spreadfn)
docs: Applies reduction along the specified dimension(s).
  
          Allows reducing the values along one or more key dimension
          with the supplied function. Supports two signatures:
  
          Reducing with a list of dimensions, e.g.:
  
              ds.reduce(['x'], np.mean)
  
          Defining a reduction using keywords, e.g.:
  
              ds.reduce(x=np.mean)
  
          Args:
              dimensions: Dimension(s) to apply reduction on
                  Defaults to all key dimensions
              function: Reduction operation to apply, e.g. numpy.mean
              spreadfn: Secondary reduction to compute value spread
                  Useful for computing a confidence interval, spread, or
                  standard deviation.
              **reductions: Keyword argument defining reduction
                  Allows reduction to be defined as keyword pair of
                  dimension and function
  
          Returns:
              The Dataset after reductions have been applied.