In my machine learning course we were assigned a bigger project in which we had to cluster BBC news articles into k different clusters. To do this we should implement NMF (non-negative matrix factorization) in either Java or Python. As I wanted to improve my skills in Python, I sticked to Python. To support matrix operations I used the numpy package. Python allowed me to keep the amount of code very compact and very readable. I described my approach in a 10 page article which you can find here.
The complete GitHub repository is available here.