Python OR 运算符问题

爆破

我有一个概率列表,用于指示 numpy 数组中的输出是 1 还是 0。我试图根据 75% 的确定性水平将这些概率分成两个单独的数组。如果任一概率高于 75%,则进入“确定”数组,如果两者都未超过该阈值,则进入“不确定”数组。

出于某种原因,当我运行此代码时,它没有正确区分两者,而是继续将所有实例添加到“特定”数组中。

代码:

probs = rfc.predict_proba(X_validate)

certain = []
uncertain = []

for i in probs[0:10]:
    zero_val = i[0]
    one_val = i[1]

    if zero_val or one_val > 0.75:
        certain.append(i)
    else:
        uncertain.append(i)


print(len(certain))
print(certain)

print(len(uncertain))
print(uncertain)

这是输出:

10
[array([0., 1.]), array([1., 0.]), array([0.95, 0.05]), array(
[0.77, 0.23]), array([0.74, 0.26]), array([0.38, 0.62]), array
([0.11, 0.89]), array([1., 0.]), array([0.94, 0.06]), array([0
.19, 0.81])]
0
[]

是什么导致每个实例都添加到“特定”数组中?谢谢!

弗洛里安·韦默

zero_val or one_val > 0.75或多或少相当于zero_val != 0 or one_val > 0.75在这种情况下,因此zero_val本质上被视为布尔标志。你需要写zero_val > 0.75 or one_val > 0.75.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章