numpy中数组(矩阵)的乘法

Posted chester-cs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = 对应项相乘

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

以上是关于numpy中数组(矩阵)的乘法的主要内容,如果未能解决你的问题,请参考以下文章

python数据分析-02numpy库

numpy的矩阵乘法

numpy数组矩阵相乘的多种方式

为啥 scipy sparse 和 numpy 数组的乘法函数会给出不同的结果?

Python: 向量矩阵和多维数组(基于NumPy库)

numpy数组与矩阵运算