首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有不同维数python的两个矩阵的乘法

具有不同维数python的两个矩阵的乘法
EN

Stack Overflow用户
提问于 2022-04-04 09:24:46
回答 1查看 146关注 0票数 0

错误:ValueError: shapes (3,1) and (3,2) not aligned: 1 (dim 1) != 3 (dim 0)

发生错误的原因是矩阵大小不同,但是如何将两个大小不同的矩阵相乘,以及得到的输出应该在哪里:[-0.78 0.85]

代码语言:javascript
运行
复制
import numpy as np

x1 = 3-7/3;
x2 = 2-4/3;
x3 = 1-5/3;

X = ([x1], [x2],[x3])

V = ([-0.99, -0.13], [-0.09, 0.70],[0.09, -0.70])

res = np.dot(X,V)
print("Res: ",res)

任何帮助都是非常感谢的!

数学问题,为了更好的理解:

对由N×M矩阵x1、x2和x3三个数据点组成的数据集进行主成分分析,使得矩阵的每一行都是一个数据点。假设矩阵X与X对应,每列的平均值为:

X = (3.00,2.00,1.00,4.00,1.00,2.00,0.00,1.00,2.00)

假设X̃有奇异值分解:

V = (-0.99,-0.13,-0.00,-0.09,0.70,-0.71,0.09,-0.70,-0.71)

第一次观测x1投影到包含最大变化的二维子空间的坐标(四舍五入到两位数)是什么?

答案:

投影可以通过减去X的平均值并投影到V的前两列来找到。第一点减去平均坐标: 2-7/3 2-4/3 1-5/3。

这应该与V的前两列相乘(左)

(3-7/3,2-4/3,1-5/3) * (-0.99,-0.13,-0.09,0.70,0.09,-0.70) = -0.78 0.85

所以我想找出如何在python中计算这个。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-04 09:38:05

我假设你想做矩阵乘法。如果矩阵的维数不同,则无法实现这一点。您可以使用reshapenumpy.matmul()实现所需的结果。

代码:

代码语言:javascript
运行
复制
import numpy as np

x1 = 3-7/3;
x2 = 2-4/3;
x3 = 1-5/3;

X = np.array([[x1], [x2],[x3]])
X = X.reshape(1, 3)

V = np.array([[-0.99, -0.13], [-0.09, 0.70],[0.09, -0.70]])

res = np.matmul(X, V)
print("Res: ",res)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71734851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档