Here's an algorithm which I think would be a good candidate for inclusion in scikit-learn: http://www.cs.utexas.edu/~cjhsieh/nmf/