Re: improving the performance of subsampling without replacement: I haven't looked into this yet in detail, so can't comment on whether or not we'll be able to improve performance over the existing implementation using `np.random.choice`. I agree that we should keep subsampling without replacement the default behavior here and in QIIME regardless of performance issues (they were already there previously in PyCogent), and we can improve performance later on, either through better usage of numpy, rewriting in cython, or using @wasade's code.

> Not unless you feel like benchmarking the implications of something that isn’t either bootstrapping or jackknifing

It sounds like there's disagreement between you and @gregcaporaso about how `n` equal to or larger than `counts.sum()` should be handled. The original PyCogent code simply returned the original vector (whether subsampling with or without replacement) and that's what the current code does. Should we just keep this current behavior?