numpy 矩阵与向量相乘_Python学习第115课--numpy点乘余弦定理推导及其空间意义

【每天几分钟,从零入门python编程的世界!】

●numpy中的对位相乘

我们之前学习的numpy中的相乘有两种方法:

①直接用*号对两个数组进行相乘。

②用numpy.multiply(x,y)方法对两个数组相乘。

以上两种相乘的方法叫做element wise,即对位相乘。假如有x和y两个数组,则数组x中的第一个元素和数组y中的第一个元素相乘,数组x中的第二个元素和数组y中的第二个元素相乘,...,数组x中的第n个元素和数组y中的第n个元素相乘,形成新的数组。

两个数组中每一个对应位置上的元素逐一进行相乘,这叫做element wise。

比如

x = [1 2]

y = [3 4]

x*y = [3 8]

这就是element wise。

●numpy中的点乘的余弦定理推导

今天我们学习另外一种相乘numpy.dot,叫点乘。

点乘这种相乘,在金融和物理的一些运算中经常会用到。所以在这里稍微简单介绍下点乘,把它的图形意义推导一下,为后面对它的运用打好基础。

对位相乘是对两个数组的对位元素一一相乘、

numpy中的点乘,如果两个数组是一维数组,那么点乘的值就是向量的内积,如果是二维或二维以上的数组,点乘是另外的计算方法,在此先不做介绍。下面我们简单从图形的意义介绍下一维数组的点乘。

对于两个一维数组的点乘,就相当于是空间的向量的内积。

在numpy中的一维数组,我们可以把它看成是一个向量。

对于两个向量相乘,比如向量a和向量b相乘,a.b,英文是inner product,即内积。

假设现在有2个向量a和b,a向量和b向量之间的夹角是cosθ。

4afd6a0d459a432b9ab2aa8db6c1a5d8

根据图示,向量c就等于向量a减b,即c = a - b。 ①式

又根据余弦定理:c² = a² + b² - 2|a||b|cosθ ②式

把①式代入②式,

(a-b)² = a² + b² - 2|a||b|cosθ

a² + b² -2ab = a² + b² - 2|a||b|cosθ

ab = |a||b|cosθ

cosθ = ab/|a||b|

θ = arccos(ab/|a||b|)

我们既然是计算a向量和b向量的乘积,a和b的值我们肯定是知道的,然后我们根据a和b相乘的结果,结果如果是0,根据ab = |a||b|cosθ,就可以知道,a和b的夹角θ是90度。

如果相乘的结果不是0,还可以根据θ = arccos(ab/|a||b|)计算出a和b的夹角是多少度。

这就是numpy中数组的点乘,点乘的值相当于向量的内积。

●numpy中一维数组点乘的空间意义

ad053b8bed844f47ab5a66035763f98d

如上图所示,把b向量投影在a向量的方向上,投影值就是b的绝对值乘以cosθ,即|b|cosθ,因为a.b在空间上就是同一方向的两个向量的绝对值的乘积,

所以a.b = |a||b|cosθ

由于numpy中的一维数组的点乘,可以看做是向量的内积,所以一维数组的点乘可以跟向量相乘的空间表示对应起来,这就是点乘的空间意义。

对于这节的内容,了解一下numpy中的一维数组的点乘是怎么计算的,以及向量在空间上如何表示、如何计算就可以了,关于向量的知识如果想深入研究一下,可以看看相关的书或者网上查查资料。对numpy中的点乘和向量的内积有一点了解之后,在后面的numpy更深入的学习中,如果提到这两个东西,就不会很迷惑。

向量的图是用纸笔画的,图画的有点丑,将就着看看吧,能理解就行。

我是时问新,欢迎关注我。跟我一起从零开始学习Python,每天花一点时间,开启python编程新世界的大门,领略新的风光,让人生多一种可能!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值