矩阵乘法@,dot,multiply,matmul的区别与使用

分类

向量的内积,即点乘、数量积:np.dot(a,b)等价于a@b。两个向量对应位置相乘再相加,结果是一个标量。
向量的外积,即叉乘:np.cross(a,b)。结果是一个向量。


向量元素对应位置相乘np.multiply(a,b)等价于a*b,相乘不相加。

  1. 元素相乘:multiply(矩阵点乘)
  2. 矩阵相乘:dot(矩阵叉乘)、matmul()、’@’
  3. ’ * ': 是特别的。在数组操作中,作为元素相乘;在矩阵操作中作为矩阵相乘。

dot和matmul的区别:

1.形状要求有所不同
np.dot函数是用于执行标准的矩阵乘法。它要求两个矩阵形状必须匹配。尤其是第一个矩阵的列数与第二个矩阵的行数必须相等,否则无法执行乘法运算。如果两个矩阵形状不匹配,则会报错。
而np.matmul函数则更加灵活,它不仅支持标准矩阵乘法,还支持批量矩阵乘法。批量矩阵乘法通常用于处理多个输入矩阵的情况。在执行批量矩阵乘法时,np.matmul函数允许两个矩阵的形状不必完全相同,只要满足一定的要求即可。


2.数据类型转换不同
使用np.dot函数进行矩阵乘法运算时,如果两个矩阵的数据类型不同,那么np.dot函数会将它们转换为相同的数据类型,然后再执行乘法运算。这种数据类型转换可能会带来—些性能上的损失。
而np.matmul函数在执行乘法运算时则不进行数据类型转换。如果两个矩阵的数据类型不同,那么np.matmul函数会报错。因此,使用np.matmul函数时需要保证两个矩阵的数据类型相同。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值