Python 中的几种矩阵乘法 np.dot, np.multiply, *

时间:2021-08-26 17:45:39

使用array时,运算符 * 用于计算数量积(点乘),函数 dot() 用于计算矢量积(叉乘).
使用matrix时,运算符 * 用于计算矢量积,函数 multiply() 用于计算数量积.

下面是使用array时:

1. 同线性代数中矩阵乘法的定义: np.dot()

np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义。对于一维矩阵,计算两者的内积。

2. 对应元素相乘 element-wise product: np.multiply(), 或 *

在Python中,实现对应元素相乘,有2种方式,一个是np.multiply(),另外一个是*。这两种的效果是一样的。

请看代码:

 #!/usr/bin/env python3
# -*- coding: utf-8 import numpy as np X = np.array([[1,2],[3,4]])
Y = np.array([[5,6],[7,8]]) a1 = np.dot(X,Y)
print('np.dot(X,Y)=\n',a1) a2 = np.multiply(X,Y)
print('np.multiply(X,Y)=\n',a2)

运行结果:

np.dot(X,Y)=
[[19 22]
[43 50]]
np.multiply(X,Y)=
[[ 5 12]
[21 32]]
X*Y=
[[ 5 12]
[21 32]]