[Numpy-discussion] simple reduction question

Julian Taylor jtaylor.debian at googlemail.com
Wed Dec 24 10:30:00 EST 2014


On 24.12.2014 16:25, Neal Becker wrote:
> What would be the most efficient way to compute:
> 
> c[j] = \sum_i (a[i] * b[i,j])
> 
> where a[i] is a 1-d vector, b[i,j] is a 2-d array?
> 
> This seems to be one way:
> 
> import numpy as np
> a = np.arange (3)
> b = np.arange (12).reshape (3,4)
> c = np.dot (a, b).sum()
> 
> but np.dot returns a vector, which then needs further reduction.  Don't know if 
> there's a better way.
> 

the formula maps nice to einsum:

np.einsum("i,ij->", a, b)

should also be reasonably efficient, but that probably depends on your
BLAS library and the sizes of the arrays.



More information about the NumPy-Discussion mailing list