photo by Jared Tarbell 特異値分解とは? 特異値分解 - Wikipedia SciPyの特異値分解 SciPyには特異値分解のための関数が2種類入っています。 scipy.linalg.svd scipy.sparse.linalg.svds 前者(svd)が一般的な特異値分解、後者(svds)がスパース行列に対する特異値分解の関数となっています。しかし、おそらく svds は別の場面で使う場合が多いのではないでしょうか。 svd では全ての特異値を計算するのに対し、svds では上位 k 個の特異値のみを計算させるオプションが存在します。当然、k が小さいほど計算は速く終わるため、スパース行列でなくても、上位の特異値のみが必要な場合は svds を使ったほうが圧倒的に計算が速いことが多いです。 PROPACK SVD のスピードについて調べているときに下のような記