使用NumPy通过单值分解计算给定数组的因子
单值分解是指当arr是一个二维数组时,它被分解为u和vh ,其中u和vh是二维单元数组,s是一个一维数组的奇异值。numpy.linalg.svd() 函数用于通过奇异值分解计算数组的因子。
语法: numpy.linalg.svd(a, full_matrices=True, compute_uv=True, hermitian=False)
参数 :
- a (…, M, N) 数组:一个实数或复数数组,a.ndim >= 2。
- full_matrices(bool, optional) :如果为真(默认),u和vh的形状分别为(…,M,M)和(…,N,N)。否则,其形状分别为(…, M, K)和(…, K, N),其中K=min(M, N)。
- compute_uv(bool, optional) :是否在s之外计算u和vh,其默认值为True。
- hermitian(bool, optional) :如果为 “真”,则假定a是赫米特的(如果是实值,则是对称的),这样可以用更有效的方法来寻找奇异值。它的默认值是假的。
下面是一些关于如何使用函数的例子。
例子1 :
输出 :
例子2 :
输出 :
例子3 :
输出 :