Python的NumPy库中dot()函数详解
本⼈在学习Python数据分析时的线性代数运算章节中,遇到矩阵乘法的dot函数的⽤法⼀时难于理解,后来,经查阅其他博主的相关资料,总结详解如下
1、NumPy库中dot()函数语法定义:
import numpy as np
np.dot(a, b, out=None)  #该函数的作⽤是获取两个元素a,b的乘积.
2、前⾯讲过数组的运算是元素级的,数组相乘的结果是各对应元素的积组成的数组,⽽对于矩阵⽽⾔,需要求的是点积,这⾥NumPy库提供了⽤于矩阵乘法的dot函数。在jupyter notebook中执⾏的代码运算如下:
dot函数的运算总代码显⽰如下
3、这样的多维数组矩阵运算,通过Python代码来实现倒是挺⽅便的,但是,通过我们⼈眼看起来,对于刚⼊门的朋友来说,可能会很吃⼒,或者不清楚该结果是怎么实现的,接下来,我给⼤家⼀⼀介绍⼀下运算过程。
4、如下单个数的dot函数运算所⽰:
np.dot(5,8)
40
5、如下⼀维数组的dot函数运算所⽰:
#如果arr1和arr都是⼀维数组,那么它返回的就是向量的内积。
arr1 = np.array([2,3])
arr1
array([2, 3])
arr2 = np.array([4,5])
arr2
numpy库常用函数
array([4, 5])
np.dot(arr1,arr2)
23
arr3 = np.array([2,3,4])
arr3
array([2, 3, 4])
arr4 = np.array([5,6,7])
arr4
array([5, 6, 7])
np.dot(arr3,arr4)
56
利⽤表格计算法来解释上⾯的⼀维数组乘积的结果计算过程如下表1,表2,所⽰:
          表 1                                         表 2
通过上表中的计算过程显⽰,是不是很快就能清楚,矩阵之间的运算。从⽽快速了解运算结果的由来。
6、如下⼆维数组的dot函数运算所⽰:
⼆维数组矩阵之间的dot函数运算得到的乘积是矩阵乘积
⼆维数组的代码案例如下
利⽤表格计算法来解释上⾯的,⼆维数组乘积的结果计算过程如下表3,所⽰:
                表 3
7、如下⼆维数组与三维数组的dot函数运算:
⼆维数组与三维数组的运算案例代码如下
利⽤表格计算法来解释上⾯的,⼆维数组与三维数组的矩阵乘积的结果计算过程如下表4,所⽰:
                      表 4
8、如下多维数组的dot函数运算所⽰:
多维数组的代码运算如下
利⽤表格计算法来解释上⾯的,多维数组的矩阵乘积的结果计算过程如下表5,表6,表7所⽰:
                  表 5                                        表6
                                      表 7
9、dot()函数可以通过NumPy库调⽤,也可以由数组实例对象进⾏调⽤。例如:a.dot(b) 与 np.dot(a,b)效果相同。但矩阵积计算不遵循交换律,np.dot(a,b) 和 np.dot(b,a) 得到的结果是不⼀样的。