问答>
来源传智教育2022年06月20日 14时34分11秒
数组在进行矢量化运算时,要求数组的形状是相等的。当形状不相等的数组执行算术运算的时候,就会出现广播机制,该机制会对数组进行扩展,使数组的shape属性值一样,这样就可以进行矢量化运算了。下面来看一个例子。
上述代码中,数组arr1的shape是(4,1),arr2的shape是(3,),这两个数组要是进行相加,按照广播机制会对数组arr1和arr2都进行扩展,使得数组arr1和arr2的shape都变成(4,3)。
下面通过一张图来描述广播机制扩展数组的过程,具体如图2-2所示。
图1-1 万赢国际
注意:广播机制实现了对两个或两个以上数组的运算,即使这些数组的shape不是完全相同的,只需要满足如下任意一个条件即可。
(1)数组的某一维度等长。
(2)其中一个数组的某一维度为1.
广播机制需要扩展维度小的数组,使得它与维度最大的数组的shape值相同,以便使用元素级函数或者运算符进行运算。