Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中矩阵乘法的快速实现方法_Python_Matrix Multiplication_Dot Product - Fatal编程技术网

Python中矩阵乘法的快速实现方法

Python中矩阵乘法的快速实现方法,python,matrix-multiplication,dot-product,Python,Matrix Multiplication,Dot Product,有人知道计算矩阵的快速方法吗,例如: Z{i,j} = \sum_{p,k,l,q} \frac{A_{ip} B_{pk} C_{kl} D_{lq} E_{qj} }{a_p - b_q - c} 对于正规矩阵乘法,我将使用numpy.dot(a,b),,但现在我将元素除以$a\u p$和$b\u q$ 有什么建议吗 有关于如何计算的建议吗 $$ C_{i,j} = \sum _p = \frac{E_{i,p} B_{p,j}}{m_p} $$ 请注意,(E[i,p]*B[p,j

有人知道计算矩阵的快速方法吗,例如:

Z{i,j}  = \sum_{p,k,l,q} \frac{A_{ip} B_{pk} C_{kl} D_{lq} E_{qj} }{a_p - b_q - c}

对于正规矩阵乘法,我将使用
numpy.dot(a,b),
,但现在我将元素除以
$a\u p$
$b\u q$

有什么建议吗

有关于如何计算的建议吗

$$ C_{i,j} =  \sum _p = \frac{E_{i,p} B_{p,j}}{m_p} $$
请注意,
(E[i,p]*B[p,j])/m[p]
等于
E[i,p]*(B[p,j]/m[p])
,因此您可以在调用
np.dot
之前将
m
分成
B

def f(E, B, m):
    B = np.asarray(B)  # matrix
    m = np.asarray(m).reshape((B.shape[0], 1))  # row vector
    return np.dot(E, B / m)  # m is broadcasted to match B

那是什么矩阵?是二维矩阵。矩阵A,B,C,D和E也是二维的你确定它是B_q吗?q用于索引D和E,据我所见,它甚至可以在B的索引之外(例如,D可以是2X40,e40x2,A,B和C可以是2x2,这将使q超出B的范围)。顺便说一句,请编辑第二个公式的代码,以便我们将其视为第一个。@rlinden,是的,我确信它是b_q。很抱歉,我不知道如何编辑代码,是别人做的。矩阵A、B、C、D和E都具有相同的形状(nxn),且A和B的长度为n。