python svd分解矩阵

#  svd实验
import numpy as np
a = np.arange(24).reshape(4, 6)
print "a:", a
u, sigma, v = np.linalg.svd(a)
print "u:", u       #  分解出的u矩阵
print "sigma:", sigma       #   分解出的奇异值向量
print "v:", v       #  分解出的v矩阵

def restore(sigma, u, v, k):          #  取k个特征,对矩阵重新进行计算
    m = len(u)
    n = len(v)
    b = np.zeros((m, n))
    for j in range(k-1):
        for i in range(m):
            b[i] += sigma[j] * u[i][j] * v[j]
    return b

print restore(sigma, u, v, 2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值