Just to be clear, is it certain that there is no situation under which BaseGrouper.count() will return an object that is incompatible with np.sqrt?  If not, what is the point of having "std" in there?  Couldn't BaseGrouper.std() just return np.sqrt(BaseGrouper.var())?