<p>从<a href="http://cs231n.github.io/python-numpy-tutorial/#numpy-broadcasting" rel="nofollow noreferrer">http://cs231n.github.io/python-numpy-tutorial/#numpy-broadcasting</a>:</p>
<blockquote>
<p>Broadcasting two arrays together follows these rules:</p>
<ol>
<li><p>If the arrays do not have the same rank, prepend the shape of the lower rank array with 1s until both shapes have the same length.</p></li>
<li><p>The two arrays are said to be compatible in a dimension if they have the same size in the dimension, or if one of the arrays has size 1 in that dimension.</p></li>
<li>The arrays can be broadcast together if they are compatible in all dimensions.</li>
<li>After broadcasting, each array behaves as if it had shape equal to the elementwise maximum of shapes of the two input arrays.</li>
<li>In any dimension where one array had size 1 and the other array had size greater than 1, the first array behaves as if it were copied along that dimension</li>
</ol>
<p>If this explanation does not make sense, try reading the explanation <a href="http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html" rel="nofollow noreferrer">from the documentation</a> or <a href="https://scipy.github.io/old-wiki/pages/EricsBroadcastingDoc" rel="nofollow noreferrer">this explanation</a>.</p>
</blockquote>