Для данного вектора a = [a 1 , a 2 , a 3 ] и вектора b = [b 1 , b 2 , b 3 ] скалярное произведение векторов, обозначаемое как a · b , определяется как:
а · b = а 1 * b 1 + а 2 * b 2 + а 3 * b 3
Например, если a = [2, 5, 6] и b = [4, 3, 2], то скалярное произведение a и b будет равно:
а · б = 2*4 + 5*3 + 6*2
а · б = 8 + 15 + 12
а · б = 35
Проще говоря, скалярное произведение — это сумма произведений соответствующих элементов в двух векторах.
В Python вы можете использовать функцию numpy.dot() для быстрого вычисления скалярного произведения между двумя векторами:
import numpy as np
np.dot (a, b)
В следующих примерах показано, как использовать эту функцию на практике.
Пример 1. Расчет скалярного произведения между двумя векторами
В следующем коде показано, как использовать numpy.dot() для вычисления скалярного произведения между двумя векторами:
import numpy as np
#define vectors
a = [7, 2, 2]
b = [1, 4, 9]
#calculate dot product between vectors
np.dot (a, b)
33
Вот как было рассчитано это значение:
- а · б = 7*1 + 2*4 + 2*9
- а · б = 7 + 8 + 18
- а · б = 33
Пример 2. Вычисление скалярного произведения между двумя столбцами
В следующем коде показано, как использовать numpy.dot() для вычисления скалярного произведения между двумя столбцами в кадре данных pandas:
import pandas as pd
import numpy as np
#create DataFrame
df = pd.DataFrame({'A': [4, 6, 7, 7, 9],
'B': [5, 7, 7, 2, 2],
'C': [11, 8, 9, 6, 1]})
#view DataFrame
df
A B C
0 4 5 11
1 6 7 8
2 7 7 9
3 7 2 6
4 9 2 1
#calculate dot product between column A and column C
np.dot (df.A , df.C )
206
Вот как было рассчитано это значение:
- А · С = 4*11 + 6*8 + 7*9 + 7*6 + 9*1
- А · С = 44 + 48 + 63 + 42 + 9
- А · С = 206
Примечание. Имейте в виду, что Python выдаст ошибку, если два вектора, для которых вы вычисляете скалярное произведение, имеют разную длину.
Дополнительные ресурсы
Как добавить строки в Pandas DataFrame
Как добавить массив Numpy в фрейм данных Pandas
Как рассчитать скользящую корреляцию в Pandas