numpy的数组广播机制

本文详细解释了Numpy如何在不同维度的数组之间进行匹配与扩展,以实现计算操作。通过具体例子展示了维度匹配的规则,并说明了在不同维度情况下如何自动扩展数组以进行运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结果一样,虽然两个数组的维数不一样,但是 Numpy 检测到 b 的维度与 a 的维度匹配,所以将 b 扩展为之前的形式,得到相同的形状。

对于更高维度,这样的扩展依然有效。

如果我们再将 a 变成一个列向量呢?

可以看到,虽然两者的维度并不相同,但是Numpy还是根据两者的维度,自动将它们进行扩展然后进行计算。

对于 Numpy 来说,维度匹配当且仅当:

  • 维度相同
  • 有一个的维度是1

匹配会从最后一维开始进行,直到某一个的维度全部匹配为止,因此对于以下情况,Numpy 都会进行相应的匹配:

ABResult
3d array: 256 x 256 x 31d array: 33d array: 256 x 256 x 3
4d array: 8 x 1 x 6 x 13d array: 7 x 1 x 53d array: 8 x 7 x 6 x 5
3d array: 5 x 4 x 31d array: 13d array: 5 x 4 x 3
3d array: 15 x 4 x 131d array: 15 x 1 x 133d array: 15 x 4 x 13
2d array: 4 x 11d array: 32d array: 4 x 3

匹配成功后,Numpy 会进行运算得到相应的结果。

当然,如果相应的维度不匹配,那么Numpy会报错:

 将 a 转换为列向量,还是可以计算出结果:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值