Разница между np.dot () и np.multiply - PullRequest
0 голосов
/ 13 ноября 2018

Я конвертирую свою функцию Matlab в Python. Я хочу переписать эту простую функцию в Python

function [ H ] = update_H( X , W , H )

     H = H.*((W'*X)./secu_plus(W'*W*H,eps));

end

function [ W ] = update_W( X , W , H )

     W = W.*((X*H')./secu_plus(W*(H*H'),eps));

end

Примечание: secu_plus - еще одна функция, поэтому игнорируйте.

Как вы можете видеть, есть 2 вида умножения * и .*, также у меня есть ./

так, каковы эквивалентные формы в питоне [(.* ) (./ ) and (*) ]

1 Ответ

0 голосов
/ 13 ноября 2018

In Matlap ,. операция означает поэлементную операцию, например, если array1 = [1,2,3] и array3 [1,2,1], .* будет [1,4,3] Эквивалент этого в Python numpy is np.multiply

np.dot - это скалярное произведение между двумя векторами, математически это скалярное произведениепроизведения двух векторов, умноженных на косинус угла между ними, в двумерных координатах это эквивалентно X1 * X2 + Y1 * Y2. В общем виде AB = сумма ai * bi

, поэтому просто используйтеnp.multiply() как эквивалент .*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...