Есть ли способ в NumPy сделать следующее (или есть общий математический термин для этого):Numpy: Dot продукт с максимальным вместо суммы
Пусть нормальное скалярное произведение:
M3[i,k] = sum_j(M1[i,j] * M2[j,k])
Теперь я хотел бы заменить сумму на сумму другой операции, скажем, максимум:
M3[i,k] = max_j(M1[i,j] * M2[j,k])
Как вы можете видеть, что это полностью параллельно выше, просто мы берем max
над всем j
а не сумма.
Другие варианты могут быть min
, prod
и любая другая операция, которая превращает последовательность/значение в значение.
Из любопытства: Кто-нибудь знает, если есть специальный математический термин для такого рода обобщения? Возможно, проблема была изучена с точки зрения оптимизации ... –
'dot' - это операция« суммы продуктов ». Существует запрос 'issue' для обобщения' np.einsum', который позволит пользователю указать обе операции. В собственном продукте Iverson 'APL' написано как« A +. × B », а другие операторы могут использоваться на месте' + 'и' x'. – hpaulj