擅长:python、mysql、java
<p>您正在迭代项而不是项索引;使用<code>enumerate</code>获取以下两种:</p>
<pre><code>listSample = list(y_predAN_PCA)
for i,s in enumerate(listSample):
if s < 0.5:
listSample[i] = 0
else:
listSample[i] = 1
</code></pre>
<p>更好的方法是使用<code>round</code>和列表理解:</p>
<pre><code>listSample = [round(e) for e in listSample]
</code></pre>
<p>或者,如果您正在使用NumPy:</p>
<pre><code>listSample = np.round(listSample)
</code></pre>
<p>注意:这将使0.5<em>向下</em>取整为0(“银行家取整”),并返回浮动列表。更接近您的代码(对于正数)的是:</p>
<pre><code>listSample = [int(e+0.5) for e in listSample]
</code></pre>