矩阵相乘算法python,矩阵乘法 python
1.列表元素的乘法使用*或np.multiply()实现对应元素的乘法。
将numpy导入为NPA=[2,2,2,2,5] b=2print (NP。乘(a,b))打印(NP。乘(a,a))打印(NP。数组(a) * NP。Array (a)) print (a * a) #因为*实现了对应元素的乘法,所以只适用于np.array类型。
2.矩阵元素的乘法使用np.multiply()实现对应矩阵对应元素的乘法。
import numpy as npb=[[1,2,3,4,5],[3,2,1,0,5]]c=[[1,1,1,1,2],[2,2,2,2,0]]print(np.multiply(b,c))print(NP . array(b)* NP . array(c))
3.矩阵乘法使用。点来实现矩阵乘法!(注意行数和列数的对应关系!)
import numpy as npb=[[1,2,3],[3,2,1]] # 2*3c=[[1,1],[2,2],[3,3]] # 3*2print(np.dot(b,c))
(参考:Python中的乘法)
(参考:Python实现了两个列表中元素对应相乘的方法)
(参考:Python中的几个矩阵乘法(Turn))
补充工作中步骤的坑:根据多元wmdjmg模型的概率公式计算概率密度时,涉及到矩阵的点乘。在Python中,我使用了*。很明显,矩阵的行数/列数并不对应,但是Python并没有报错。
经排查,是因为计算的是元素乘法而不是矩阵点乘。改成 np.dot() 之后,计算正确!
#计算pdfn=dataset . values . shape[1]a=(2 * math . pi)* *(n/2)b=(NP . linalg . det(sigma))* *(1/2)c=NP . linalg . inv . Tmp=dataset . values PDF=[]对于Tmp中的x:aa=1/(a * b)bb=NP . dot(x-mu,c) #这就是矩阵点乘!Cc=np.dot(bb,(x-mu)。T) #这就是矩阵点乘!DD=aa * math . exp(-1/2 * cc)# bb=-1/2 *(x-mu)* c *(x-mu)。T #这不是矩阵乘法!pdf.append
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。