python numpy矩阵乘法_高维Python-Numpy矩阵乘法
哈,只需一行即可完成:np.einsum('nmk,nkj->mj',A,B)。在
不要將變量命名為sum,而是重寫sum中的內部版本。在
正如@Jaime指出的,對于這些尺寸的維度,循環實際上更快。事實上,基于map和sum的解決方案雖然更簡單,甚至更慢:In [19]:
%%timeit
SUM = np.zeros([20,5])
for i in range(len(A)):
SUM += np.dot(A[i],B[i])
10000 loops, best of 3: 115 μs per loop
In [20]:
%timeit np.array(map(np.dot, A,B)).sum(0)
1000 loops, best of 3: 445 μs per loop
In [21]:
%timeit np.einsum('nmk,nkj->mj',A,B)
1000 loops, best of 3: 259 μs per loop
尺寸越大,事情就越不一樣了:
^{pr2}$
以及:In [46]:
%%timeit
SUM = np.zeros([20,5])
for i in range(len(A)):
SUM += np.dot(A[i],B[i])
1 loops, best of 3: 191 ms per loop
In [47]:
%timeit np.array(map(np.dot, A,B)).sum(0)
1 loops, best of 3: 164 ms per loop
In [48]:
%timeit np.einsum('nmk,nkj->mj',A,B)
1 loops, best of 3: 451 ms per loop
總結
以上是生活随笔為你收集整理的python numpy矩阵乘法_高维Python-Numpy矩阵乘法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上海健康码怎么申请 上海健康码申请方式及
- 下一篇: honor10是什么型号(荣耀10荣耀)