Reconstructing a matrix from an SVD in python 3(在Python3中从奇异值分解重构矩阵)
本文介绍了在Python3中从奇异值分解重构矩阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
好,基本上我的问题是,我有一个矩阵,我把它奇异值分解,然后把它放在变量u,s和v中,我对s矩阵做了一些修改,使它成为对角线,还修改了一些数字。现在我基本上是试着把它重建成一个正则矩阵,从这3个矩阵恢复到原来的矩阵。有谁知道有什么函数可以做到这一点吗?我似乎在NumPy中找不到任何这样的例子。推荐答案
唯一稍微有点棘手的是s
如果您已经安装了scipy
它有scipy.linalg.diagsvd
可以为您完成此操作:
>>> import numpy as np
>>> import scipy.linalg as la
>>>
>>> rng = np.random.default_rng()
>>> A = rng.uniform(-1,1,(4,3))
>>> u,s,v = np.linalg.svd(A)
>>>
>>> B = u@la.diagsvd(s,*A.shape)@v
>>>
>>> np.allclose(A,B)
True
这篇关于在Python3中从奇异值分解重构矩阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在Python3中从奇异值分解重构矩阵


猜你喜欢
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01