Как numpy dot работает с трансляцией

У меня есть два массива numpy. Когда я использовал функцию numpy dot, я получил разные результаты. Я не мог понять, как функция точки работает вместе с трансляцией для получения этих результатов. Может кто-нибудь объяснить мне разницу между этими двумя.

A = np.array([[2,4,6]])
Y  = np.array([[1,0,1]])


np.dot(A,Y.T) = array([8])
np.dot (Y.T, A) = array([[2, 4, 6],
                        [0, 0, 0],
                        [2, 4, 6]])

person Abin John Thomas    schedule 08.02.2018    source источник


Ответы (1)


Функция dot - это умножение матриц, без трансляции. Использование np.dot(A,Y.T) аналогично использованию [email protected] в Python 3.5+.

Умножение матриц не коммутативно (порядок аргументов имеет значение). В первом случае A - это вектор-строка, Y.T - вектор-столбец. В результате получается одно значение.

Во втором примере Y.T - это вектор-столбец, а A - вектор-строка. В результате получается матрица.

person user2699    schedule 08.02.2018