Python数据科学手册-Numpy数组的计算:广播


 广播可以简单理解为用于不同大小数组的二元通用函数(加减乘等)的一组规则

二元运算符是对相应元素逐个计算

广播允许这些二元运算符可以用于不同大小的数组

更高维度的数组

更复杂的情况,对俩个数组的同时广播

a + b 

广播可视化

 浅色的盒子代表广播的值, ps:额外的内存并没有在实际操作中分配。

## 广播的规则

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

规则2: 如果俩个数组的形状在任何一个维度上都不匹配,那么数组的形状会沿着维度为1 的维度开始扩展 ,(维度必须是1开始)直到所有维度都一样, 以匹配另一个数组的形状,

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

示例1 

 示例2 

俩个数组均需要广播

示例3 ,俩个数组不兼容的示例

如果 a 从右边补1,是不是就可以了,但是这样会导致结果模糊,如果希望右边补全,可以变形数组,

广播的实际应用

数组的归一化

 輸出