请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

点乘与np.dot() 的疑问

老师,点乘的结果应该是一个标量吧?

但设有

a = np.array([[1,2],[3,4]])
b = np.array([[1,2],[3,4]])
a.dot(b)
>>> array([[7,10],[15,22]])

那就是说dot应该就是矩阵乘法而不是矩阵点乘啊,我的理解对吗?

正在回答

1回答

你理解的对。

dot就是点乘,本质就是矩阵乘法。两个向量(1*n和n*1)之间的点乘结果,可以看做一个1*n和一个n*1的矩阵的乘法,结果为一个数。

2 回复 有任何疑惑可以回复我~
  • 提问者 十里坡劍神 #1
    更迷糊了。。。我举的例子中矩阵a与b的点乘结果应该是1*1+2*2+3*3+4*4 = 30,但np.dot(a,b)却是array([[7,10],[15,22]])。那究竟哪个算点乘还是两个都算。。。
    回复 有任何疑惑可以回复我~ 2018-01-20 12:01:08
  • liuyubobobo 回复 提问者 十里坡劍神 #2
    “点乘”这个说法是定义在向量上的,严格来说没有矩阵的点乘,只有矩阵的乘法。
    回复 有任何疑惑可以回复我~ 2018-01-20 12:08:49
  • 提问者 十里坡劍神 回复 liuyubobobo #3
    原来如此,那课程中的“矩阵X_b的转置点乘矩阵X_b”可以理解为“矩阵X_b的转置与矩阵X_b相乘”对吗?
    回复 有任何疑惑可以回复我~ 2018-01-20 12:14:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信