dot是numpy里的函数,主要用于求向量相乘,矩阵乘法,矩阵与向量乘法
一、一维向量相乘
要求元素个数相同,相当于求内积,对应元素相乘再相加,“1*3 + 2*4 = 11”
二、矩阵和矩阵相乘
遵循矩阵乘法法则“左行 * 右列”,左行和右列维数相同,对应元素相乘再相加。
【2行2列】 * 【2行2列】= 【2行2列】,生成2*2的矩阵,
“1*1 + 2*3 = 7” “1*2 + 2*4 = 10”
“3*1 + 4*3 = 15” “3*2 + 4*4 = 22”
三、多维矩阵相乘
遵循矩阵乘法法则“左行 * 右列”,左行和右列维数相同,对应元素相乘再相加。
“1*1 + 2*4 = 9” “1*2 + 2*5 = 12” “1*3 + 2*6= 15”
“3*1 + 4*4 = 19” “3*2 + 4*5 = 26”“3*3 + 4*6 = 33”
“5*1 + 6*4 = 29” “5*2 + 6*5 = 40”“5*3 + 6*6 = 51”
四、数值相乘
相当于做乘法,“2 * 3 = 6 ”,“4 * 5 = 20”
五、矩阵与向量相乘
设向量维度为 1*a,矩阵为a*b,则相乘结果矩阵为1*b
x是一维向量【1,2,3】,y是3*2维矩阵,相乘结果是2*2维矩阵
“1*1 + 2*3 + 3*5= 22” “1*2 + 2*4 + 3*6= 28”
六、实例化a.dot(b)与np.dot(a,b)等价
七、矩阵与转置矩阵相乘
矩阵转置相当于行变成列,对应元素顺序不变,第一行的【1,2】,转置后成为第一列【1,2】
“1*1 + 2*2 = 5” “1*3 + 2*4 = 11”
“3*1 + 4*2 = 11” “3*3 + 4*4 = 25”
感谢:https://www.jb51.net/article/262735.htm