在python中设置svd算法的维度

时间:2018-02-28 06:35:21

标签: python numpy scipy svd

svd formular:import React, { Component } from 'react'; import Loadable from 'react-loadable'; const LoadableComponent = Loadable({ loader: () => import(/* webpackChunkName: "clientLogin" */'./index'), loading: <div>Loading...</div>, }) export default class LoadableClientLogin extends Component { render() { return <LoadableComponent />; } } 我使用numpy.linalg.svd来运行svd算法。 我想设置矩阵的维度。

例如:A ≈ UΣV*尺寸,运行numpy.linalg.svd,A=3*5尺寸,U=3*3尺寸,Σ=3*1尺寸。

我需要设置特定维度,例如V*=5*5维度,U=3*64维度。但似乎没有可选的维度参数可以在numpy.linalg.svd中设置。

1 个答案:

答案 0 :(得分:1)

如果A3 x 5矩阵,那么它的排名最多为3.因此A的SVD最多包含3个奇异值。请注意,在上面的示例中,奇异值存储为向量而不是对角矩阵。通常这意味着您可以在底部用零填充矩阵。由于完整的S矩阵在对角线上包含3个值,然后是其余的0(在您的情况下,它将是64x64,具有3个非零值),V的底行和U的右行根本不会相互作用,并且可以被设置为你想要的任何东西。

请记住,这不再是A的SVD,而是矩阵的浓缩SVD增加了很多0。