擅长:python、mysql、java
<p>我认为现在发生的是一个整数除以另一个整数:</p>
<pre><code>>>> renditen = np.array([-2,-1,0,10,20])
>>> renditen[renditen > 0]
array([10, 20])
>>> len(renditen[renditen > 0]) / len(renditen)
0
</code></pre>
<p>您可以通过确保分割浮点来避免这种情况:</p>
<pre><code>>>> 1.0*len(renditen[renditen > 0]) / len(renditen)
0.4
>>> float(len(renditen[renditen > 0])) / len(renditen)
0.4
</code></pre>
<p>或者,您可以在程序开始时<code>from __future__ import division</code>:</p>
<pre><code>>>> from __future__ import division
>>> 2/3
0.6666666666666666
</code></pre>
<p>我无法解释为什么选中时会使用浮点除法,但我对Spyder一无所知</p>