我們知道在處理數據的時候,使用矩陣間的運算將會是方便直觀的。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 = 對應項相乘
點乘要求前者的列數等於后者的行數,對應項相乘需要矩陣的形狀相同(或者說有矩陣的延拓情況?沒有試驗過)