If this turn out to be really needed check out [`sklearn.utils.extmath.randomized_svd`](https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/utils/extmath.py#L135) which can compute an approximate truncated SVD much faster.  Question is, which is the way to go? ARPACK for all cases? randomized_svd for dense, ARPACK for sparse? Full svd? The only clear answer is that I need to go to sleep :zzz: