xiao 啸 xiao 啸 - 4 months ago 9
Python Question

What is the pythonic way to calculate dot product?

I have two lists, one is named as A, another is named as B. Each element in A is a triple, and each element in B is just an number. I would like to calculate the result defined as :

result = A[0][0] * B[0] + A[1][0] * B[1] + ... + A[n-1][0] * B[n-1]

I know the logic is easy but how to write in pythonic way?

Thanks!

Answer
import numpy
result = numpy.dot( numpy.array(A)[:,0], B)

http://docs.scipy.org/doc/numpy/reference/

If you want to do it without numpy, try

sum( [a[i][0]*b[i] for i in range(len(b))] )