擅长:python、mysql、java
<p>在数组上迭代时,使用<code>np.delete</code>从数组中删除元素(i继续增加)</p>
<p>因此,每次删除这样的值时,应该减小<code>i</code>的值:</p>
<pre><code>import numpy as np
def chopper(values):
i = 0
continue_ = i < len(values)
while continue_:
if np.abs(values[i]) < 10**(-9):
values=np.delete(values,i)
else:
i += 1
continue_ = i < len(values)
return values
print(chopper(np.array([1,2,10**(-10),-10**(-10),3])))
</code></pre>
<p>或者拥抱numpy面具的力量,那会更有效率:</p>
<pre><code>import numpy as np
def chopper(values):
mask = np.abs(values) > 10**(-9)
return values[mask]
print(chopper(np.array([1,2,10**(-10),-10**(-10),3])))
</code></pre>
<p>当然,这可以在一行中完成:</p>
<pre><code>values = values[np.abs(values) > 10**(-9)]
</code></pre>