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 = 对应项相乘

  点乘要求前者的列数等于后者的行数,对应项相乘需要矩阵的形状相同(或者说有矩阵的延拓情况?没有试验过)    

猜你喜欢

转载自www.cnblogs.com/chester-cs/p/12690299.html
今日推荐