https://trac.pythonprogramminghelp.com/3-things-you-should-never-do-singular-value-decomposition-svd/