A = [1,2,3,4,5,6]
B = [2,2,2,2,2,2]
# with numpy
import numpy as np
np.dot(A,B) # 42
np.sum(np.multiply(A,B)) # 42
#Python 3.5 has an explicit operator @ for the dot product
np.array(A)@np.array(B)# 42
# without numpy
sum([A[i]*B[i] for i in range(len(B))]) # 42
def dot_product(vector_a, vector_b):
#base case
#error message if the vectors are not of the same length
if len(vector_a) != len(vector_b):
return "ERROR: both input vectors must be of the same length"
#multiply vector_a at position i with vector_b at position i
#sum the vector made
#return that vector
return sum([vector_a[i] * vector_b[i] for i in range(len(vector_a))])
import numpy as np
# input: [[1,2,3,...], [4,5,6,...], ...]
def dot_product(vector, print_time= True):
if print_time:
print("----Dot Product----")
dot_product = []
for j in range(len(vector[0])):
col = []
for i in range(len(vector)):
col.append(vector[i][j])
prod_col = np.prod(col)
dot_product.append(prod_col)
sum_dot_product = np.sum(dot_product)
if print_time:
print(f"input vector: {vector}, => dot product = {sum_dot_product}")
print("================================")
return sum_dot_product
vector1 = [1,2,3]
vector2 = [4,5,6]
vector3 = [2,4,3]
vector4 = [2,4,3]
vector = [vector1, vector2, vector3, vector4]
dot_product(vector)
# or
dot_product([vector2, vector4])
# or
# the False parameter, disables the printing in the function.
print(dot_product(vector,False))