Okay, thanks. Do you think we should throw an error if `n` is greater than the number of items? It seems strange to return the original counts vector in this case, since we technically *could* have "subsampled" a greater number of items when `replace=True`. I think the intention of this function would be clearer if we put these bound checks in place and only allowed `n <= counts.sum()` (where `n == counts.sum()` differs depending on with/without replacement).