【发布时间】:2014-06-16 06:21:08
【问题描述】:
假设你有两个向量数组:
v1 = np.array([ [1, 2], [3, 4] ])
v2 = np.array([ [10, 20], [30, 40]])
我们想生成一个等价于的数组:
v3 = np.array([ np.dot(v1[0], v2[0]), np.dot(v1[1], v2[1]) ])
目前我使用:
v3 = np.einsum('ij,ij->i', v1, v2)
但是,我在我的代码中经常这样做,所以这里的加速对我很有帮助。
我们怎样才能加快速度? np.einsum 已经相当高效了,但我想知道对于这个特殊的用例,是否有更快的方法?
【问题讨论】:
-
如果您的数组真的很大,请查看stackoverflow.com/questions/17527340/… 了解 numpy.einsum 与其他方式的一些比较