Разница между умножением numpy dot () и умножением матриц Python 3.5+.

Я недавно перешел на Python 3.5 и заметил новое умножение матриц operator (@) иногда ведет себя не так, как ноль-точка оператор. Например, для 3d-массивов:

import numpy as np

a = np.random.rand(8,13,13)
b = np.random.rand(8,13,13)
c = a @ b  # Python 3.5+
d = np.dot(a, b)

Оператор @ возвращает массив формы:

c.shape
(8, 13, 13)

в то время как функция np.dot() возвращает:

d.shape
(8, 13, 8, 13)

Как я могу воспроизвести тот же результат с помощью NumPy? Есть ли другие существенные различия?

75 голосов | спросил blaz 7 MonEurope/Moscow2015-12-07T23:23:26+03:00Europe/Moscow12bEurope/MoscowMon, 07 Dec 2015 23:23:26 +0300 2015, 23:23:26

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132