Метод Numpy vdot () используется для вычисления скалярного произведения двух векторов. Функция vdot () обрабатывает многомерные массивы иначе, чем метод numpy dot (): она не выполняет матричное произведение, а сначала сглаживает входные аргументы до одномерных векторов. Следовательно, его следует использовать только для векторов.
Разница между numpy vdot () Vs. numpy.dot ()
В отличие от метода numpy.dot (), в методе numpy.vdot (), если предоставленный первый параметр является комплексным по природе, то он использует комплексное сопряжение первый параметр для вычисления скалярного произведения.
Кроме того, он отличается от метода numpy.dot () обработкой многомерных массивов, он не выполняет умножение матриц, как в numpy.dot ( ) метод, он сглаживает многомерные массивы, предоставленные в качестве входных данных, в одномерные векторы для выполнения вычислений.
numpy.vdot (Vect_A, Vect_B)
Параметры
Функция vdot () занимает до двух основные параметры:
- Vect_A : array-like , если Vect_A является сложным по природе, тогда он использует комплексное сопряжение Vect_A для вычисления скалярного произведения.
- Vect_B : объект, подобный массиву.
Возвращаемое значение
Th Функция vdot () возвращает скалярное произведение заданных векторов. Выходные данные могут быть в форме int, float или complex, что зависит от типа входов Vect_A и Vect_B.
Пример программирования
Программа для демонстрации работы numpy.vdot ().
# импорт модуля numpyimport numpy как np # Первый ParameterVect_A = np.array ( [5 + 3j, 2-5j]) # Второй параметрVect_B = np.array ([- 2 + 3j, 8-3j]) Out = np.vdot (Vect_A, Vect_B) print ("Точечное произведение двух векторов:" , Out)
Output
Точечное произведение двух векторов: (30 + 55j)
Пояснение
В программе мы взяли два массива numpy с именами Vec_A и Vec_B, состоящие из комплексных чисел, а затем передали эти значения внутри массива numpy. .vdot ().
Метод numpy.vdot () выполняет вычисление скалярного произведения следующим образом:
Поскольку первый параметр Vec_A содержит комплексные числа, поэтому numpy.vdot () использует его комплексное сопряжение, т. е. комплексное сопряжение 5 + 3j равно 5-3j, и аналогично комплексное сопряжение 2-5j равно 2 + 5j.
Теперь скалярное произведение вычисляется как:
( 5-3j) . (-2 + 3j) + (2 + 5j) . (8-3j)
= [5 * (-2) + 5 * 3j + ( -3j) * (-2) + (-3j) * (3j)] + [2 * 8 + 2 * (- 3j) + 5j * 8 + 5j * (-3j)]
= [-10 + 15j + 6j + 9] + [16 -6j + 40j + 15]
= [-1 + 21j] + [34j + 31] = 30 + 55j , который получается как вывод в переменной Out.
Программа для просмотра работы метода vdot () в случае многомерных массивов.
# импорт модуля numpyimport numpy as np # Первый ParameterVect_A = np.array ([[1, 3], [5, 7]]) # Второй ParameterVect_B = np.array ([[2, 4], [6, 8]]) Out = np. vdot (Vect_A, Vect_B) print ("Точечное произведение двух векторов равно:", Out)
Вывод
Точечное произведение из двух векторов: 100
Объяснение
В программе, как и в первом примере, мы взяли два входных числа массивы, и мы передали многомерные массивы формы (2,2), т.е. двумерный массив внутри них.
Теперь эти два массива с именами Vec_A и Vec_B передаются как параметры внутри метода vdot () для вычисления скалярного произведения.
Теперь скалярное произведение вычисляется с помощью сглаживание двумерных массивов как:
1 * 2 + 3 * 4 + 5 * 6 + 7 * 8 = 100 , который получается как вывод в Переменная Out.
Наконец, пример Numpy vdot () завершен.