numpy矩阵乘法,矩阵的乘法python
哈,只需一行即可完成:np.einsum(nmk,nkj-sfdxg ,A,B)。在
不要将变量命名为总和,而是重写总额中的内部版本。在
正如@詹姆指出的,对于这些尺寸的维度,循环实际上更快。事实上,基于地图和总额的解决方案虽然更简单,甚至更慢:在[19]中:
%%timeit
SUM=np.zeros([20,5])
对于范围内的我(len(A)):
SUM=np.dot(A[i],B[i])
10000次循环,最好每次循环3: 115秒
在[20]中:
%timeit np.array(map(np.dot,A,B))。总和(0)
1000次循环,最好每次循环3: 445秒
在[21]中:
%timeit np.einsum(nmk,nkj-sfdxg ,A,B)
1000次循环,最好每次循环3: 259秒
尺寸越大,事情就越不一样了:
^{pr2}$
以及:在[46]中:
%%timeit
SUM=np.zeros([20,5])
对于范围内的我(len(A)):
SUM=np.dot(A[i],B[i])
一次循环,每次循环最好为3: 191毫秒
在[47]中:
%timeit np.array(map(np.dot,A,B))。总和(0)
一次循环,每次循环最好为3: 164毫秒
在[48]中:
%timeit np.einsum(nmk,nkj-sfdxg ,A,B)
一次循环,每次循环最好为3: 451毫秒
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。