numpy中数组(矩阵)的乘法
我们知道在处理数据的时候,使用矩阵间的运算将会是方便直观的。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 = 对应项相乘
点乘要求前者的列数等于后者的行数,对应项相乘需要矩阵的形状相同(或者说有矩阵的延拓情况?没有试验过)