Как вычислить скалярное произведение с помощью numpy
Учитывая вектор a = [a 1 , a 2 , a 3 ] и вектор b = [b 1 , b 2 , b 3 ], скалярное произведение векторов, обозначаемое a · b , определяется выражением:
ab = а 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 n.p. dowry (a, b)
Следующие примеры показывают, как использовать эту функцию на практике.
Пример 1: вычисление скалярного произведения между двумя векторами
Следующий код показывает, как использовать numpy.dot() для вычисления скалярного произведения между двумя векторами:
import numpy as np #definevectors a = [7, 2, 2] b = [1, 4, 9] #calculate dot product between vectors n.p. dowry (a, b) 33
Вот как было рассчитано это значение:
- аб = 7*1 + 2*4 + 2*9
- аб = 7 + 8 + 18
- аб = 33
Пример 2: вычисление скалярного произведения между двумя столбцами
Следующий код показывает, как использовать numpy.dot() для вычисления скалярного произведения между двумя столбцами в DataFrame pandas:
import pandas as pd import numpy as np #createDataFrame 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 n.p. dot (df. A , df. C ) 206
Вот как было рассчитано это значение:
- АС = 4*11 + 6*8 + 7*9 + 7*6 + 9*1
- АС = 44 + 48 + 63 + 42 + 9
- А С = 206
Примечание. Имейте в виду, что Python выдаст ошибку, если два вектора, для которых вы рассчитываете скалярное произведение, имеют разную длину.
Дополнительные ресурсы
Как добавить строки в DataFrame Pandas
Как добавить массив Numpy в DataFrame Pandas
Как рассчитать скользящую корреляцию в пандах