擅长:python、mysql、java
<pre><code>In [512]: a = np.zeros(shape=(10,2,1,3,4))
...: b = np.ones(shape=(10,2,1,3,4))
...:
...: select = [1,1,1,0,1,0,1,0,1,0]
</code></pre>
<p>以@DYZ相同的方式使用转置:</p>
<pre><code>In [513]: res = np.where(select, a.T, b.T).T
In [514]: res.shape
Out[514]: (10, 2, 1, 3, 4)
</code></pre>
<p>如果不想转置,可以向<code>select</code>添加维度,使其广播到与<code>a</code>和<code>b</code>相同的形状:</p>
<pre><code>In [516]: res1 = np.where(np.array(select)[:,None,None,None,None],a,b)
In [517]: res1.shape
Out[517]: (10, 2, 1, 3, 4)
In [518]: np.allclose(res,res1)
Out[518]: True
</code></pre>