Умножение матриц в NumPy
У первой таблицы оси
'ij', у второй 'jk':
общая буква 'j' стоит на входе
у обеих, но не попадает в результат,
поэтому по ней суммируют произведения.
Справа остаются 'ik', как у
стандартного произведения матриц.
Перемножим две таблицы 2×2
формулой 'ij,jk->ik':
import numpy as np
a = np.array([[1, 2],
[3, 4]])
b = np.array([[5, 6],
[7, 8]])
product = np.einsum('ij,jk->ik', a, b)
print(product) # выведет [[19 22]
# [43 50]]
Тот же результат даёт оператор
@ для этих массивов:
import numpy as np
a = np.array([[1, 2],
[3, 4]])
b = np.array([[5, 6],
[7, 8]])
print(a @ b) # выведет [[19 22]
# [43 50]]
Для таблиц [[1, 0], [2, 1]]
и [[3, 1], [0, 2]] получите
их матричное произведение формулой
с общей внутренней буквой оси
и выведите таблицу результата.
Для тех же двух таблиц цен получите матричное произведение обычным знаком умножения таблиц и убедитесь, что оно совпадает с ответом формулы.