擅长:python、mysql、java
<p>您的<code>Spin1</code>遵循面向数组语言(例如APL、MATLAB)中的一种成熟模式,用于将<code>Spin2</code>之类的函数“矢量化”。创建一个或多个布尔(或0/1数组)来表示数组元素可以采用的各种状态,然后通过乘法和求和构造输出。在</p>
<p>例如,为了避免被零除的问题,我使用了:</p>
<pre><code>1/(x+(x==0))
</code></pre>
<p>另一种方法是使用布尔索引数组来选择应该更改的数组元素。在本例中,您希望返回<code>value</code>,但所选元素为“rollover”。在</p>
^{pr2}$
<p>在这种情况下,索引方法更简单,似乎更适合程序逻辑。可能更快,但我不能保证。最好把这两种方法都记在心里。在</p>