不同形状的数组或标量计算时,发生广播(Boardcasting)
广播分为标量广播和数组广播
当一个数组与标量进行计算时,标量会在指定维度上被拓展以后再进行计算
【标量广播】
如图,当数组a[[1,2], 与10相加时,标量10会被扩展为 一个2*2的矩阵(元素全为10)
[3,4]]
再与数组a相加
我们可以在jupyter notebook中查看这个过程
import numpy as np
a=np.array([[1,2],
[3,4]])
b=a+10
print(b)
【数组广播】
下面来看数组的广播
import numpy as np
a = np.arange(1,25).reshape(2,3,4)
print(a.shape)
b = np.arange(31,43).reshape(3,4)
print(b.shape)
c = a + b
print(c.shape)
print(c)
矩阵a的形状是(2,3,4)
矩阵b的形状是(3,4)
它们是可以相加的,相加后的结果c是2*3*4矩阵
相加时,原本(3,4)的b矩阵会在0轴上被复制成两份,扩展为(2,3,4)矩阵,然后与矩阵a相加
广播后的b矩阵
可以计算得出,这个广播后的矩阵与矩阵a相加就得到c
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。