擅长:python、mysql、java
<p>你已经得到了别人的答案。如果使用第三方库没有问题,可以使用NumPy阵列的掩蔽。对于这样一个小的例子来说,这是一种过分的做法,但知道选择还是很好的</p>
<p><strong>说明:</strong><code>lst<0.5</code>返回值小于0.5的数组索引。然后将其作为索引传递给数组<code>lst</code>作为<code>lst[lst<0.5]</code>,并重新分配这些值<code>0</code>。类似地,检查大于等于0.5的值并将其重新指定为1</p>
<pre><code>import numpy as np
lst = np.array([0.2943,0.3483,0.3359,0.3671,0.6788,1,0.779])
lst[lst<0.5] = 0
lst[lst>=0.5] = 1
print (lst)
# array([0., 0., 0., 0., 1., 1., 1.])
</code></pre>
<p><strong>如<a href="https://stackoverflow.com/users/1252759/jon-clements">Jon Clements</a>所建议的另一种更好的方法是使用<a href="https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.where.html" rel="nofollow noreferrer">np.where</a>。在这里,首先指定条件(<code>lst<0.5</code>在这里)。如果条件为<code>True</code>,则该条件后的第一个值将分配给数组元素。如果条件为<code>False</code>,则将分配第二个值</p>
<pre><code>np.where(lst<0.5, 0, 1)
# array([0., 0., 0., 0., 1., 1., 1.])
</code></pre>