擅长:python、mysql、java
<p>基于<code>b</code>和<code>s</code>中的重复,我自动看到一个2d解决方案:</p>
<pre><code>b = np.zeros(N,4)
b[:,2:] = s.reshape(N,2)
b = b.flatten()
</code></pre>
<p>或者将0附加到经过整形的<code>s</code>:</p>
<pre><code>b = np.hstack([np.zeros((10,2)),s.reshape(10,2)]).flatten()
</code></pre>
<p>或者如果我们想用3d来思考</p>
<pre><code>np.einsum('ij,k->ikj',s.reshape(N,2),[0,1]).flatten()
</code></pre>
<p>与广播相同</p>
<pre><code>(s.reshape(10,2)[:,None,:]*np.array([0,1])[None,:,None]).flatten()
</code></pre>