python的numpy库的dot(a,b)函数,计算两个数组的点积。
用法
numpy.dot(a, b, out=None)
描述
numpy.dot(a,b),计算数组a和b的点积。
入参
a和b:numpy.dot(a,b)的入参a,b为必选入参;
如果a和b是一维数组,则得到的是两数组的内积。
如果a和b是二维数组,则得到的是两数组的乘积。
1.1 一维数组的内积
numpy.dot(a,b),如果a,b为一维数组,则返回数组的内积,即数组a和b的相同索引元素相乘后的和,得到的是一个标量而不是数组。并且a和b的大小(元素个数)必须相等。
复数乘法:(a+bj)(c+dj)=(ac-bd)+(ad+bc)j,已知jj=-1。
>>> import numpy as np
# dot(a,b)若a,b一维数组
# 则返回a和b的内积
>>> ar1=np.arange(1,6)
>>> ar2=np.arange(6,11)
>>> ar1
array([1, 2, 3, 4, 5])
>>> ar2
array([ 6, 7, 8, 9, 10])
# 一维数组内积:两个数组元素分别相乘后求和
>>> np.dot(ar1,ar2)
130
>>> np.sum(ar1*ar2)
130
>>> ar3=np.arange(6,10)
>>> ar3
array([6, 7, 8, 9])
# 一维数组a和b的元素个数必须相等
>>> np.dot(ar1,ar3)
Traceback (most recent call last):
File "", line 1, in <module>
np.dot(ar1,ar3)
ValueError: shapes (5,) and (4,) not aligned: 5 (dim 0) != 4 (dim 0)
1.2 二维数组的乘积
numpy.dot(a,b),如果a和b为二维数组,则计算二维数组对应的矩阵积。
矩阵积即两个矩阵相乘,需满足下面条件:
(1) 尺寸匹配:对于矩阵A和B,A的列数必须与B的行数相等,才能进行乘法运算。例如,若矩阵A是一个m×n的矩阵,那么矩阵B必须是一个n×p的矩阵,结果矩阵C的大小是m×p。
(2) 乘法规则:矩阵乘积C中的每个元素c_ij是通过取矩阵A的第i行与矩阵B的第j列对应元素的乘积之和来计算。即,c_ij=a_i1b_1j+a_i2b_2j+…+a_in*b_nj。
(3) 不满足交换律:AB≠BA,除非A或B为单位矩阵。
>>> import numpy as np
# c=dot(a,b)若a,b为二维数组,则计算a和b的矩阵积
# c_ij=a的i行元素与b的j列元素相乘后求和
>>> ar1=np.arange(1,7).reshape(2,3)
>>> ar2=np.arange(2,11).reshape(3,3)
>>> ar1
array([[1, 2, 3],
[4, 5, 6]])
>>> ar2
array([[ 2, 3, 4],
[ 5, 6, 7],
[ 8, 9, 10]])
>>> np.dot(ar1,ar2)
array([[ 36, 42, 48],
[ 81, 96, 111]])
# c00=36=ar1的0行*ar2的0列,再求和
>>> np.sum(ar1[0]*ar2[:,0].reshape(3,))
36
# a的列数必须与b的行数相等
>>> np.dot(ar2,ar1)
Traceback (most recent call last):
File "", line 1, in <module>
np.dot(ar2,ar1)
ValueError: shapes (3,3) and (2,3) not aligned: 3 (dim 1) != 2 (dim 0)
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。