TL;DR numpy.matrixは非推奨。numpy.ndarrayと@演算子を使いましょう。 はじめに 少し前に「大名行列を特異値分解してみる」という記事を書いたところ、元同僚さんから「numpy.matrixはdeprecatedですよ」と言われて驚きました1。 調べたらStackOverflowにやたら詳しい解説が載っていたので、それをもとに説明してみようと思います。 特異値分解とmatrixクラス 線形代数に特異値分解(Singular Value Decomposition, SVD)という処理があります。m行n列の行列Xを、m行m列のユニタリ行列U、m行n列の対角行列S、n行n列のユニタリ行列Vの積に分けるというものです。なんか適当な行列を作ってみましょう。 import numpy as np from scipy import linalg X = (np.arange