我們知道在處理數據的時候,使用矩陣間的運算將會是方便直觀的。matlab有先天的優勢,算矩陣是它的專長。當然我們用python,經常要用到的可能是numpy這個強大的庫。
矩陣有兩種乘法,點乘和對應項相乘(element-wise product)。在numpy中應該怎么實現呢,看看下面的例子就明白了。
## A = B = array([[1, 2],
## [3, 4]])
>>>A = np.array([[1,2],[3,4]])
>>>B = np.array([[1,2],[3,4]])
>>>A@B
array([[ 7, 10],
[15, 22]])
>>>np.dot(A,B)
array([[ 7, 10],
[15, 22]])
>>>np.multiply(A,B)
array([[ 1, 4],
[ 9, 16]])
>>>A*B
array([[ 1, 4],
[ 9, 16]])
結果一目了然:
np.dot(A, B) = A@B = 點乘
np.multiply(A, B) = A*B = 對應項相乘
點乘要求前者的列數等於后者的行數,對應項相乘需要矩陣的形狀相同(或者說有矩陣的延拓情況?沒有試驗過)
