nparray变量,如何利用 .dot() 做向量点积和矩阵乘积计算?
发布于 作者:苏南大叔 来源:程序如此灵动~

本文苏南大叔说一个有些烧脑的操作,就是nparray
变量乘以nparray
变量。换成专业点的名词就是:“向量点积”和“矩阵乘积”。操作方式上有三种方式,分别是:a @ b
,np.dot(a,b)
,a.dot(b)
。那么,这些操作有什么区别呢?

苏南大叔的“程序如此灵动”博客,记录苏南大叔和计算机代码的故事。本文测试环境:win10
,python@3.12.0
。
向量点积
向量点积,实际上就是 一维数组一维数组,两者需要size
一致。这个向量点积结果,运算方法是:n1m1 + n2*m2。
下面的代码中,操作的ndarray
分别是[1 2 3]
和[6 5 4]
,两者的形状都是一维向量(3,)。计算的结果是这样运算的,1*6 + 2*5 + 3*4 = 6 + 10 + 12 = 28
。
过渡一下
这里是一维向量乘以二维矩阵,计算方法类似。但是结果不是一个数字,而是个数组[28]
了。并且把x
和y
互换后,就会报错了。
矩阵乘积
两个二维矩阵乘积,得到的依然是个矩阵。操作的二维数组是:
结果是:
计算方法是:
7*1 + 9*2 = 25
8*1 + 10*2 = 28
7*3 + 9*4 = 21 + 36 = 57
8*3 + 10*4 = 24 + 40 = 64
7*5 + 9*6 = 35 + 54 = 89
8*5 + 10*6 = 40 + 60 = 100
结语
更多苏南大叔的python
经验文章,请点击:


