Как использовать функцию numpy.vdot() в Python

Метод Numpy vdot() используется для вычисления скалярного произведения двух векторов. Функция vdot() обрабатывает многомерные массивы иначе, чем метод numpy dot(): она не выполняет матричное произведение, а сначала сглаживает входные аргументы до одномерных векторов. Следовательно, его следует использовать только для векторов.

Разница между numpy vdot() и numpy dot()

В отличие от метода numpy.dot(), в методе numpy.vdot(), если предоставленный первый параметр имеет сложный характер, он использует комплексное сопряжение первого параметра для вычисления скалярного произведения.

Кроме того, он отличается от метода numpy.dot() обработкой многомерных массивов. Не выполняет умножение матриц, как это делается в методе numpy.dot(), а сглаживает многомерные массивы, предоставленные в качестве входных данных, в одномерные векторы для выполнения расчета.

Синтаксис

Параметры

Функция vdot() принимает до двух основных параметров:

  1. Vect_A : массивоподобный, если Vect_A сложный по своей природе, то он использует комплексное сопряжение Vect_A для вычисления скалярного произведения.
  2. Vect_B : массивоподобный объект.

Возвращаемое значение

Функция vdot() возвращает скалярное произведение заданных векторов. Выходные данные могут быть в форме int, float или complex, что зависит от типа входных данных Vect_A и Vect_B.

Примеры программирования

Метод Numpy vdot() в Python

Программа для демонстрации работы numpy.vdot()

Выход:

Объяснение.

В программе мы взяли два массива numpy с именами Vec_A и Vec_B, состоящие из комплексных чисел, а затем передали эти значения в метод numpy.vdot().

Метод numpy.vdot() выполняет вычисление скалярного произведения следующим образом.

Поскольку первый параметр, Vec_A содержит комплексные числа, поэтому numpy.vdot() использует его комплексное сопряжение, т. е. комплексно-сопряженное число 5+3j равно 5-3j, и аналогичным образом комплексно-сопряженное число 2-5j равно 2+5j.

Теперь скалярный продукт рассчитывается как:

(5-3к) .(-2+3j) +(2+5j) .(8-3к)

= [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() с многомерными массивами

Выход:

Объяснение.

В программе, как и в первом примере, мы взяли два входных массива numpy и передали внутри них многомерные массивы формы(2,2), т.е. двумерный массив. Теперь эти два массива с именами Vec_A и Vec_B передаются в качестве параметров внутри метода vdot() для вычисления скалярного произведения.

Скалярный продукт вычисляется путем выравнивания двумерных массивов следующим образом:

1*2 + 3*4 + 5*6 + 7*8 = 100, что получается на выходе в переменной Out.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python