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))查看函数的具体用法。通过查看发现还可用于复数运算。

 

 

 

posted @ 2022-07-27 22:35  wancy  阅读(9518)  评论(0编辑  收藏  举报