def marginalize(self, axes):
    return GMM(self.weights, self.means[(..., axes)], self.covs[(..., axes)][..., axes, :], self.lims[axes])
def marginalize(self, axes):
    return GMM(self.weights, self.means[(..., axes)], self.covs[(..., axes)][..., axes, :], self.lims[axes])