code: def projection(self, *axes: AxisIdentifier, **kwargs) -> HistogramBase:
          
          # TODO: rename to project in 0.5
          axes, invert = self._get_projection_axes(*axes)
          frequencies = self.frequencies.sum(axis=invert)
          errors2 = self.errors2.sum(axis=invert)
          return self._reduce_dimension(axes, frequencies, errors2, **kwargs)
docs: Reduce dimensionality by summing along axis/axes.
  
          Parameters
          ----------
          axes: Iterable[int or str]
              List of axes for the new histogram. Could be either
              numbers or names. Must contain at least one axis.
          name: Optional[str] # TODO: Check
              Name for the projected histogram (default: same)
          type: Optional[type] # TODO: Check
              If set, predefined class for the projection
  
          Returns
          -------
          HistogramND or Histogram2D or Histogram1D (or others in special cases)