Python OR运算符问题

时间:2018-07-22 20:21:53

标签: python arrays numpy

我有一个概率列表,指示在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
[]

是什么导致每个实例都被添加到“某些”数组中的原因?谢谢!

1 个答案:

答案 0 :(得分:3)

在这种情况下,

<?php use SilverStripe\Forms\FieldList; use SilverStripe\Forms\HTMLEditor\HTMLEditorField; use SilverStripe\ORM\DataExtension; class CustomSiteConfig extends DataExtension { private static $db = [ 'FooterContent' => 'HTMLText' ]; public function updateCMSFields(FieldList $fields) { $fields->addFieldToTab("Root.Main", new HTMLEditorField("FooterContent", "Footer Content") ); } } 或多或少与zero_val or one_val > 0.75等效,因此zero_val != 0 or one_val > 0.75本质上被视为布尔标志。您需要写zero_val