Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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!

like image 979
xiao 啸 Avatar asked May 07 '11 06:05

xiao 啸


People also ask

How do you code a dot product in Python?

In Python, one way to calulate the dot product would be taking the sum of a list comprehension performing element-wise multiplication. Alternatively, we can use the np. dot() function. Keeping to the convention of having x and y as column vectors, the dot product is equal to the matrix multiplication xTy x T y .


2 Answers

Python 3.5 has an explicit operator @ for the dot product, so you can write

a = A @ B 

instead of

a = numpy.dot(A,B) 
like image 196
Henri Andre Avatar answered Oct 21 '22 00:10

Henri Andre


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))] ) 
like image 35
user57368 Avatar answered Oct 21 '22 00:10

user57368