python的numpy库的np.dot函数详解
dot函数为numpy库下的一个函数。主要用于矩阵的乘法运算,其中包括、向量内积、多维矩阵乘法、矩阵与向量的乘法,向量与矩阵的乘法。
1.向量内积
两个向量内积运算其实也是一维矩阵运算,需要保证两个向量的元素个数相同。结果是一个数值类型的数。
import numpy as np x=np.array([1,2,3]) y=np.array([4,5,6]) result=np.dot(x,y) print(result)#结果是数值32
注意:向量只有一层中括号,其shape为(m,),转置也是这个(m,)。
2.矩阵与矩阵相乘
需要满足矩阵的乘法原则,即A=mXn,B=nXp,C=AXB=mXp。A的列数等于B的行数。
x=np.array([[1,2,3],[4,5,6]])#2X3矩阵 y=np.array([[1,2,3,4],[4,3,2,1],[0,1,1,0]])#3X4矩阵 result=np.dot(x,y)#2X4矩阵 print(result)
注意:矩阵有两层中括号,结果是ndarray数据类型
3.矩阵与向量相乘
A=mXn,B=n,则C=AXB=m,关于相乘运算时向量是否需要转置,计算时已经自动转置了。
x=np.array([[1,2,3],[4,5,6]])#2X3矩阵 y=np.array([1,0,1])#(3,)向量 result=np.dot(x,y)#结果是[ 4 10] print(result)#结果是[ 4 10],shape为(2,)
注意:如果y= np.array([[1],[0],[1]]),则y.shape为(3,1),则变成了两个矩阵相乘,则结果为[[ 4] [10]],其shape为(2,2)
4.向量与矩阵相乘
A=n,B=nXm,C=AXB为m列的一维矩阵或者向量,数据类型为ndarray。与线性代数运算一致,x的一行乘以y矩阵的每列。
x=np.array([1,0])#(2,)向量 y=np.array([[1,2,3],[4,5,6]])#2X3(或者(2,3))矩阵 result=np.dot(x,y) print(result)#结果为[1 2 3],shape为(3,)向量
注意:一般X矩阵乘以Y矩阵不等于Y矩阵乘以X矩阵。
说明:可以使用print(help(np.dot))查看函数的具体用法。通过查看发现还可用于复数运算。