有没有人知道计算矩阵的快速方法,例如:
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_p$
和$b_q$
。
有什么建议吗?
有关如何计算的任何建议
$$ C_{i,j} = \sum _p = \frac{E_{i,p} B_{p,j}}{m_p} $$
也会有很大的帮助。
答案 0 :(得分:0)
请注意,(E[i, p] * B[p, j]) / m[p]
等于E[i, p] * (B[p, j] / m[p])
,因此您可以在调用m
之前将B
简单地划分为np.dot
。
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