理解Numpy中的广播(Broadcasting)机制

通过一张图理解Numpy的广播机制

Numpy中的广播指的是在进行数学运算时,如果两个数组的shape属性不一致,那么小的数组就会沿着大的数组“广播”开来,这样一来,两个原本大小不一的数组就可以进行数学运算了。广播是一个不错的偷懒办法,但是效率不高降低运算速度通常也为人诟病。

上面这张图片解释得非常形象,这里用文字概括两条规则:

  1. 广播之后,输出数组的shape是输入数组shape的各个轴上的最大值,然后沿着较大shape属性的方向复制延伸;
  2. 要进行广播机制,要么两个数组的shape属性一样,要么其中有一个数组的shape属性必须有一个等于1;

参考

  1. 图片内容来源:http://www.labri.fr/perso/nrougier/from-python-to-numpy/?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more#broadcasting
  2. https://docs.scipy.org/doc/numpy-1.10.0/user/basics.broadcasting.html
觉得还不错?帮我赞助点域名费吧:)