Agree with @GaelVaroquaux , but would say that the example is really badly chosen. the [0, 0] vector is a singular point and is *orthogonal* to any other vector, but---due to the absence of the notion of length,---cannot be normalized. My opinion is to choose a better example.

Also, why would you choose straightforward linear algebra methods such as a `qr` decomposition or a Lödwin orthogonalisation (based on a polar decomposition), i.e., for X = USV.T the SVD of X, an orthonormal projection of X is UV.T