深度学习入门 - np.dot,np.multiply,星号(*)之间的关系

一.相关概念

1.1 一维数组

一维数组在python中是用 list 存储。用numpy创建一个一维数组如下所述,会发现此时得到的形状为4在这里插入图片描述

1.2 行向量

而行向量在线性代数中表示1×N的矩阵,numpy创建如下:
在这里插入图片描述
会发现得到的形状变成了1×4

1.3 列向量

列向量在线性代数中表示N×1的矩阵,numpy创建如下:
在这里插入图片描述

会发现得到的形状变成了4×1

1.4 矩阵

二维数组又称为矩阵,numpy构建如下(创建一个3×3矩阵):
在这里插入图片描述

二. 一维数组计算

2.1 计算元素积(*)

在这里插入图片描述
结果为各列相乘。

2.2 计算内积(np.dot)

在这里插入图片描述
结果为每列相乘再相加得数值。

2.3 multiply进行计算

在这里插入图片描述
直接计算发现计算的元素积。
转换成矩阵np.mat:
在这里插入图片描述
结果还是元素积。

三.行向量,列向量的计算

3.1 计算元素积(*)

在这里插入图片描述

结果为每列相乘再相加得数值(这里用到了广播机制)。

3.2 计算内积(np.dot)

在这里插入图片描述
在这里插入图片描述

计算发现计算的元素积。

3.3 multiply进行计算

在这里插入图片描述

计算的是元素积(同样使用了广播机制)。
在这里插入图片描述

转成矩阵计算还是元素积(只不过类型变成了matrix)。

四. 矩阵的计算

4.1 计算元素积(*)

在这里插入图片描述
结果为每列相乘再相加得数值。
在这里插入图片描述
对于矩阵则执行内积。

4.2 计算内积(np.dot)

在这里插入图片描述
计算发现计算的元素积。

4.3 multiply进行计算

在这里插入图片描述
如果通过multiplt直接计算 np.array的值,会当成元素积计算。
在这里插入图片描述
转成矩阵计算还是元素积。

五. 总结

(1) np.multiply 无论数组还是矩阵都是元素积(元素对应位置相乘),输出与相乘数组/矩阵的大小一致
(2) np.dot 对于秩为1的数组,执行对应位置相乘再相加;对于秩不为1的二维数组,执行内积;
(3) 星号(*) 对数组执行对应位置相乘;对矩阵执行矩阵乘法运算;
(4) 建议不要使用星号,要么使用np.multiply进行元素积运算,要么用np.dot进行内积运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不止三岁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值