[英]Fast Summation in Python
我想做一系列的点产品。 即
for i in range(N[0]):
for j in range(N[1]):
kr[i,j] = dot(k[i,j,:], r[i,j,:])
是否有矢量化的方法来做到这一点,例如使用einsum或tensordot?
假设N[0]
和N[1]
是k
和r
的前两个维度的长度,
kr = numpy.einsum('...i,...i->...', k, r)
我们指定...
启用广播,并沿最后一个轴执行点积。
假设k
和r
具有三个维度,则与以下相同:
kr = numpy.sum(k * r, axis=-1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.