Numpy中数组的乘法
Numpy中数组的乘法
按照两个相乘数组A和B的维度不同,分为以下乘法:
- 数字与一维/二维数组相乘;
- 一维数组与一维数组相乘;
- 二维数组与一维数组相乘;
- 二维数组与二维数组相乘;
numpy有以下乘法函数:
- *符号或者np.multiply:逐元素乘法,对应位置的元素相乘,要求shape相同
- @符号或者np.matmul:矩阵乘法,形状要求满足(n,k),(k,m)->(n,m)
- np.dot:点积乘法
解释:点积,也叫内积,也叫数量积
两个向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的点积定义为:
a·b=a1b1+a2b2+……+anbn。
在numpy中的一维数组可以看做是行向量也可以当做列向量
1. 数字与一维数组/二维数组相乘
一维数组
二维数组
2. 一维数组与一维数组相乘
逐元素乘法
点积/内积/数量积
3. 二维数组和一维数组相乘
逐元素乘法
为什么A是5行4列能和1行4列的矩阵B逐元素相乘呢?
因为numpy中的广播将1行4列广播成了5行4列,当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制
矩阵乘法
4. A和B都是二维数组,实现矩阵乘法
我们向往远方,却忽略了此刻的美丽