NumPy 广播(Broadcast)

广播 (Broadcast) 是numpy 对不同形状 (shape) 的数组进行数值计算处理的一种机制, 对数组的算术运算通常在相应的元素上进行。
#若两个数组a,b形状相同,即a.shape==b.shape——两个数组对应位相乘(其他运算符也行)
import numpy as np
a1= np.array([1,2,3,4])
b1= np.array([10,2,3,4])
print (a1 * b1)#[10  4  9 16]
print (a1+b1)#[11  4  6  8]
print (a1-b1)#[-9  0  0  0]
print (a1/b1)#[0.1 1.  1.  1. ]
print (a1%b1)#[1 0 0 0]
print (a1//b1)#[0 1 1 1]
print (a1+20)#[21 22 23 24]

当运算中的 2 个数组的形状不同时, numpy 将自动触发广播机制。
        1.对应维度的长度相等,(即必须要小的那个数组行或列和大的数组某个对应维度相同,小的那个数组的形状会扩展使他们具有相同的形状,再进行运算
        2.对应维度的长度其中一个为1,长度为1的维度会被扩展,这两个数组在该维度的形状将会被扩展为较大的长度
        当两个数组在维度上的长度既不相等也不为1,即为不可广播的维度,会报错
#若两个数组a,b形状不同,numpy将触发广播机制
a2= np.array([[[1,1],[2,2]],[[3,3],[4,4]]])
b2= np.array([[1,2],[3,4]])
print (a2 * b2)
# [[[ 1  2]
#   [ 6  8]]
#
#  [[ 3  6]
#   [12 16]]]
print (a2 + b2)
# [[[2 3]
#   [5 6]]
#
#  [[4 5]
#   [7 8]]]
print("----------------")
a3= np.array([[[1,1],[2,2]],[[3,3],[4,4]]])
b3= np.array([1,2])
print (a3 * b3)
# [[[1 2]
#   [2 4]]
#
#  [[3 6]
#   [4 8]]]
print (a3 + b3)
# [[[2 3]
#   [3 4]]
# 
#  [[4 5]
#   [5 6]]]
print("----------------")
a4= np.array([1,2,3])
b4= np.array([1,2])
print (a4 + b4)#报错

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值