Numpy之广播机制

Numpy的广播严格遵守以下规则:

规则1:如果两个数组的维度数不同,那么小维度数组的形状将会在最左边补1。

规则2:如果两个数组的形状在任何一个维度上都不匹配,那么数组的形状会沿着维度为1的维度扩展以匹配另外一个数组的形状。

规则3:如果两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度等于1,那么会引发异常。

为了更清楚地理解这些规则,来看几个具体示例。

示例1:二维数组与一维数组相加:

M = np.ones((2,3)) # M = [[1 1 1] [1 1 1]]
a = np.arange(3)  # a = [0 1 2]
print(M + a)

两个数组的形状如下:

M.shape = (2,3)
a.shape=(3,)

根据规则1,数组a的维度更小,所以在其左边补1:

M.shape = (2,3)
a.shape=(1,3) 
M = [[1 1 1] [1 1 1]]
a = [[0 1 2]]

根据规则2,第1个维度不匹配,因此扩展这个维度以匹配数组:

M
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值