擅长:python、mysql、java
<p>对于不依赖<code>numpy</code>的替代方案,您可以一直这样做</p>
<pre><code>arr = [max(lower_bound, min(x, upper_bound)) for x in arr]
</code></pre>
<p>如果您只想设置一个上限,当然可以写<code>arr = [min(x, upper_bound) for x in arr]</code>。或者类似地,如果您只需要一个下界,您可以使用<code>max</code>。在</p>
<p>这里,我已经应用了两个操作,一起编写。在</p>
<p><strong>编辑:</strong>这里有一个稍微更深入的解释:</p>
<p>给定数组的元素<code>x</code>(假设你的<code>upper_bound</code>至少和你的<code>lower_bound</code>一样大!),您将有三种情况之一:</p>
<p>i)<code>x < lower_bound</code></p>
<p>ii)<code>x > upper_bound</code></p>
<p>iii)<code>lower_bound <= x <= upper_bound</code>。在</p>
<p>在case(i)中,<code>max/min</code>表达式首先计算为<code>max(lower_bound, x)</code>,然后解析为<code>lower_bound</code>。在</p>
<p>在情况(ii)中,表达式首先变成<code>max(lower_bound, upper_bound)</code>,然后变成{<cd5>}。在</p>
<p>在案例(iii)中,我们得到<code>max(lower_bound, x)</code>,它解析为<code>x</code>。在</p>
<p>在这三种情况下,输出都是我们想要的。在</p>