擅长:python、mysql、java
<p>您可以创建一个零数组,并适当地设置正确的索引,而不是掩蔽?你知道吗</p>
<p><strong>1-D(优化)解决方案</p>
<p>(设置)将<code>a</code>转换为1D数组:<code>a = np.array([1,2,3,4,5])</code>。你知道吗</p>
<ol>
<li><p>只替换max的一个实例</p>
<p/>
<pre><code>b = np.zeros_like(a)
i = np.argmax(a)
b[i] = a[i]
</code></pre></li>
<li><p>替换max的所有实例</p>
<pre><code>b = np.zeros_like(a)
m = a == a.max()
b[m] = a[m]
</code></pre></li>
</ol>
<hr/>
<p><strong>N-D解决方案</p>
<pre><code>np.random.seed(0)
a = np.random.randn(5, 5)
</code></pre>
<p/>
<pre><code>b = np.zeros_like(a)
m = a == a.max(1, keepdims=True)
b[m] = a[m]
</code></pre>
<p/>
<pre><code>b
array([[0. , 0. , 0. , 2.2408932 , 0. ],
[0. , 0.95008842, 0. , 0. , 0. ],
[0. , 1.45427351, 0. , 0. , 0. ],
[0. , 1.49407907, 0. , 0. , 0. ],
[0. , 0. , 0. , 0. , 2.26975462]])
</code></pre>
<p>适用于每行<code>max</code>的所有实例。你知道吗</p>