Yeah, I've been wanting to refactor/rewrite a lot of the code in this module to make better use of numpy/scipy. I created an issue here:

https://github.com/qiime/qiime/issues/1394

I'd like to get this merged first since it's already a pretty large pull request, and then I can get started on improving this code.