相关疑难解决方法(0)

使用Numpy(np.linalg.svd)进行奇异值分解

我正在阅读Abdi&Williams(2010)的"主成分分析",我正在尝试重做SVD以获得进一步PCA的值.

文章指出在SVD之后:

X = PDQ ^ t

我在np.array X中加载我的数据.

X = np.array(data)
P, D, Q = np.linalg.svd(X, full_matrices=False)
D = np.diag(D)
Run Code Online (Sandbox Code Playgroud)

但是在检查时我没有得到上述相同

X_a = np.dot(np.dot(P, D), Q.T)
Run Code Online (Sandbox Code Playgroud)

X_a和X是相同的尺寸,但值不相同.我是否遗漏了某些内容,或者np.linalg.svd函数的功能是否与文中的等式不兼容?

python numpy pca

16
推荐指数
3
解决办法
4万
查看次数

求解Numpy中的广义特征值问题

我正在寻找一个类型的问题: Aw = xBw其中x是标量(特征值),w是一个特征向量,A并且B是对称的,相等维度的方形numpy矩阵.我应该能够找到dX/W对,如果A和B是d x d.我怎么能在numpy中解决这个问题?我正在查看Scipy文档而没有找到任何我想要的东西.

python numpy linear-algebra scipy

7
推荐指数
2
解决办法
5833
查看次数

numpy矩阵乘法形状

在矩阵乘法中,假设它A是一个3 x 2矩阵(3行,2列)并且B是2 x 4矩阵(2行,4列),那么如果是矩阵C = A * B,那么C应该有3行4列.numpy为什么不做这个乘法?当我尝试以下代码时,我收到一个错误:ValueError: operands could not be broadcast together with shapes (3,2) (2,4)

a = np.ones((3,2))
b = np.ones((2,4))
print a*b
Run Code Online (Sandbox Code Playgroud)

我尝试转置A和B,alwasy得到相同的答案.为什么?在这种情况下如何进行矩阵乘法?

python numpy matrix-multiplication

5
推荐指数
1
解决办法
8702
查看次数