矩阵乘法_谈numpy array矩阵乘法的条件

矩阵乘法主要分为两种:元素乘和矩阵乘

矩阵乘则是一般意义上的矩阵乘法,可以使用

  • C = A @ B
  • C = np.matmul(A,B)
  • C = np.dot(A,B)

矩阵乘的条件很明确,即是A的列数必须等于B的行数。

元素乘(也叫点乘)即是两个矩阵元素之间的乘法,可以使用

  • C = A*B
  • C = np.multiply(A,B)

按道理元素乘必须满足A和B的行数和列数都相同,但是实际做两个numpy array的元素乘却很灵活,可以一个矩阵乘以一个数n得到的矩阵里每一个元素都被乘了n,甚至可以一个3×3的矩阵乘以一个1×3的矩阵,但是究竟那些矩阵之间可以做元素乘,各种说法并不统一。今天做了实验总结了以下规律:

A和B可以做元素乘必须满足两个条件:

  1. A的行数和B的行数相同或其中一个矩阵的行数为1,即Row(A)==Row(B) || Row(A)==1 || Row(B)==1;
  2. A的列数和B的列数相同或其中一个矩阵的列数为1,即Col(A)==Col(B) || Col(A)==1 || Col(B)==1。

根据这个规则:

  • 一个2×2的矩阵和一个2×2的矩阵可以元素乘;
  • 一个4×2的矩阵和一个1×2的矩阵可以元素乘;
  • 一个4×2的矩阵和一个1×1的矩阵可以元素乘;
  • 一个4×1的矩阵和一个1×4的矩阵可以元素乘;
  • 一个4×2的矩阵和一个2×2的矩阵却不可以元素乘。

c44c695783952898b4b68631e7e67b5a.png


这个规则可以这样理解:

  • 如果其中一个矩阵的行数为1,它就自我复制另一个矩阵的行数次;
  • 如果其中一个矩阵的列数为1,它就自我复制另一个矩阵的列数次。

例如:

1)

等价于
,乘积等于

2)

等同于
,乘积等于
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值