Numpy广播准则、法则(举例分析)

法则:

  • 法则一:

    若多个数组的维度(或叫轴)的数量ndim不同,对ndim少的数组,从后向前使用“1”来扩展,直到所有数组的ndim相同。

  • 法则二:

    此时(所有数组的ndim已经相同)判断能否广播,若存在两数组的shape中某一对应位置都不包含1且不相等,则不能广播抛出ValueError;否则可以广播,将“1”改为对应维度大小的最大值,最终所有数组的shape都相同。

举例:

  • 例一
    a = np.array([[1, 2, 3], [4, 5, 6]]) a.shape=(2,3)
    b = np.array([4, 5, 6])b.shape=(3, )
    c = np.array(2)c.shape=()
    a * b + c,
    由法则一:b.shape改为(1, 3),c.shape改为(1, 1)
    由法则二:首先判断得出可以广播,然后将b.shape索引为0元素的改为最大值2(max{a.shape[0], b.shape[0], c.shape[0]}),此时b的元素在逻辑上进行复制,即b.shape为(2, 3)。同样,将c.shape改为(2, 3)。

  • 例二
    a = np.array([[1, 2, 3], [4, 5, 6]]) a.shape=(2,3)
    b = np.array([4, 5])b.shape=(2, )
    由法则一:b.shape改为(1, 2)
    由法则二:a.shape[0]和b.shape[0]满足,但a.shape[1]和b.shape[1]不满足,不能广播。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值