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. _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion