Numpy linlag multi_dot() используется в Python для получения скалярного произведения двух или более массивов в одном вызове функции. Исходя из ее работы, мы можем сказать, что эта функция может быстрее выдавать нам результат.
Что такое функция Numpy linalg multi_dot() в в Python?
Метод Numpy linlag multi_dot() вычислит скалярное произведение двух или более массивов в одном вызове функции, автоматически выбирая самый быстрый порядок вычисления.
Это означает, что мы можем получать скалярные произведения более чем двух массивов одновременно, вместо того, чтобы вызывать их снова и снова. Multi_dot связывает numpy.dot и использует оптимальное заключение матриц в скобки. В зависимости от формы матриц функция multi_dot() может значительно ускорить умножение.
Синтаксис
|
1 |
numpy.inlag.multi_dot(arrays) |
Параметры
Функция multi_dot() принимает только один аргумент — список массивов, скалярные произведения которых мы хотим вычислить с помощью этой функции.
Возвращаемое значение
Функция linag multo_dot() возвращает скалярные произведения заданных массивов.

Примеры программирования
Напишем программу, показывающую вычисление скалярных произведений нескольких массивов без использования multi_dot.
Пример 1
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Program to show calculating dot products of # multiple arrays without using multi_dot import numpy as np from numpy.linalg import multi_dot # Preparing some arrays with random elements a = np.array([[1, 2], [4, 5]]) b = np.array([[5, 6], [7, 9]]) c = np.array([[6, 1], [3, 4]]) # Now we will find dot product of these three arrays ans1 = a.dot(b).dot(c) ans2 = np.dot(np.dot(a, b), c) # Printing answers print("Dot products of these 3 arrays is: \n") print(ans1) print(ans2) |
Выход:
|
1 2 3 4 5 6 |
Dot products of these 3 arrays is: [[186 115] [537 331]] [[186 115] [537 331]] |
Объяснение:
В этой программе мы объявили матрицы 3, 2×2 и вычислили скалярное произведение этих матриц без использования многоточечной функции. Для этого мы показали два разных метода, с помощью которых мы вычислили скалярные произведения этих трех массивов. Мы видим, что в обоих случаях мы получаем один и тот же ответ.
Пример 2
Напишем программу для демонстрации вычисления скалярных произведений нескольких массивов с использованием multi_dot.
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# Program to show calculating dot products of # multiple arrays with using multi_dot import numpy as np #from numpy.linalg import multi_dot # Preparing some arrays with random elements a = np.array([[1, 2], [4, 5]]) b = np.array([[5, 6], [7, 9]]) c = np.array([[6, 1], [3, 4]]) # Now we will find dot product of these three arrays ans = np.linalg.multi_dot([a, b, c]) # Printing answers print("Dot products of these 3 arrays is: \n") print(ans) |
Выход:
|
1 2 3 4 |
Dot products of these 3 arrays is: [[186 115] [537 331]] |
Объяснение:
В этой программе мы взяли те массивы, которые использовались в предыдущей программе, и на этот раз мы применили функцию numpy.linalg.multidot для вычисления скалярных произведений этих массивов.
Для этого мы только что передали один массив в качестве параметра, который содержит массивы в значении типа массива. В итоге мы получили тот же ответ, что и в предыдущей программе.
