使用NumPy通过单值分解计算给定数组的因子

使用NumPy通过单值分解计算给定数组的因子

单值分解是指当arr是一个二维数组时,它被分解为uvh ,其中uvh二维单元数组,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 :

# Import numpy library
import numpy as np
  
# Create a numpy array
arr = np.array([[0, 0, 0, 0, 1], [2, 0, 0, 1, 3],
                [4, 0, 2, 0, 0], [3, 2, 0, 0, 1]],
               dtype=np.float32)
  
print("Original array:")
print(arr)
  
# Compute the factor by Singular Value 
# Decomposition
U, s, V = np.linalg.svd(arr, full_matrices=False)
  
# Print the result
print("\nFactor of the given array  by Singular Value Decomposition:")
print("\nU=", U, "\n\ns=", s, "\n\nV=", V)

输出 :

使用NumPy通过单值分解计算给定数组的因子

例子2 :

# Import numpy library
import numpy as np
  
# Create a numpy array
arr = np.array([[8, 4, 0], [2, 5, 1], 
                [4, 0, 9]], dtype=np.float32)
  
print("Original array:")
print(arr)
  
# Compute the factor 
U, s, V = np.linalg.svd(arr, full_matrices=False)
  
# Print the result
print("\nFactor of the given array  by Singular Value Decomposition:")
print("\nU=", U, "\n\ns=", s, "\n\nV=", V)

输出 :

使用NumPy通过单值分解计算给定数组的因子

例子3 :

# Import numpy library
import numpy as np
  
# Create a numpy array
arr = np.array([[8, 1], [0, 5]], dtype=np.float32)
print("Original array:")
print(arr)
  
# Compute the factor 
U, s, V = np.linalg.svd(arr, full_matrices=False)
  
# Print the result
print("\nFactor of the given array  by Singular Value Decomposition:")
print("\nU=", U, "\n\ns=", s, "\n\nV=", V)

输出 :

使用NumPy通过单值分解计算给定数组的因子

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程