奇异值分解(numpy.linalg.svd二维和三维数据的压缩和还原)

奇异值分解(SVD)是将矩阵分解为正交矩阵U、奇异值矩阵Σ和正交矩阵V的过程。在numpy.linalg.svd函数中,通过设置full_matrices和compute_uv参数来控制输出矩阵的大小。SVD的主要应用是数据压缩,通过保留最大的几个奇异值,可以近似重构原始矩阵,降低存储和计算需求。在2维和3维数据的计算中,可通过调整参数控制输出矩阵的形状。
摘要由CSDN通过智能技术生成

奇异值分解

SVD(Singular Value Decomposition,奇异值分解)
numpy.linalg模块中的svd函数可以对矩阵进行奇异值分解。

分解的目标:

  • 是一种因子分解运算,将一个矩阵分解为3个矩阵的乘积
  • 3个矩阵: U, Σ \Sigma Σ 和 V,其中U和V是正交矩阵,分别称为左奇异值、右奇异值, Σ \Sigma Σ为奇异值。

numpy的实现

numpy.linalg.svd(A,full_matrices=1,compute_uv=1)

参数:

  • A是一个形如(m,n)矩阵
  • full_matrices的取值是为0或者1,默认值为1,表示输出的U和V是否为全矩阵。
  • compute_uv的取值是为0或者1,默认值为1,表示输出3个矩阵。为0的时候只输出 Σ \Sigma Σ

返回值:

返回3个矩阵U、 Σ \Sigma Σ、V

  • full_matrices=1时:U大小为(m,m), Σ \Sigma Σ大小为(k),k=min(m,n),V大小为(n,n)。 A ( m , n ) = U ( m , m ) Σ k V ( n , n ) A_{(m,n)} = U_{(m,m)}\Sigma_{k}V_{(n,n)} A(m,n)=U(m,m)ΣkV
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值