Как рассчитать точечный продукт с помощью NumPy


Для данного вектора 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.