Numpy中的广播Broadcast用法

广播机制在Numpy中允许不同大小的数组进行二元运算,如加法、减法。它遵循三条规则:1) 形状较短的数组在前面用1填充;2) 如果某个维度不匹配但为1,则该维度被拉伸匹配;3) 任何维度大小不匹配且不等于1则报错。通过规则,数组可以在适当条件下扩展形状以执行运算,例如在不同尺寸的数组上逐元素相加。广播规则适用于所有二元ufunc,且不局限于加法操作。
摘要由CSDN通过智能技术生成

广播仅仅是一组用于在不同大小的数组上应用二元ufuncs(加法、减法、乘法等)的规则。

对于相同大小的数组,二元操作按元素逐元素执行。

In[1]: import numpy as np
In[2]: a = np.array([0, 1, 2])
b = np.array([5, 5, 5])
a + b
Out[2]: array([5, 6, 7])

广播允许在不同大小的数组上执行这些类型的二元操作。

在NumPy中,广播遵循一组严格的规则来确定两个数组之间的操作:

规则1:如果两个数组在维度的数量上有差异,那么维度较少的数组的形状就会被用1填充在它的前导(左)边
规则2:如果两个数组的形状在任何维度上都不匹配,但等于1,那么在这个维度中,形状为1的数组将被拉伸以匹配另一个形状。

规则3:如果在任何维度上,大小都不一致,且两者都不等于1,就会出现错误。

下面看例子:

In[1]: import numpy as np
In[2]: M = np.ones((2, 3))
       a = np.arange(3)

In [3]: M.shape
Out[3]: (2, 3)
In [4]: a.shape
Out[4]: (3,)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值