值错误:具有多个元素的数组的真值不明确

时间:2019-03-31 09:16:02

标签: python numpy

我有一个python代码,如下:

...
bestProb=-1;
bestIndex=-1;
prob=np.zeros(numClasses) #numClasses=2
for i in range(0,numClasses):
   prob[i]=findProb(x,weights,b,i)
for i in range(0,numClasses):
   if prob[i]>bestProb:
       bestProb=prob
       bestIndex=i
...

类的数目为2。运行此代码时,出现错误:

File "regression.py", line 19, in predict
if prob[i]>bestProb:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我知道如果将整个数组与一个数字进行比较会发生此错误,但是我写prob[i]时不是仅使用一个数字吗?如果我错了,请告诉我该如何解决。谢谢!

此外,请注意,findProb()给出一个数字,而不是一个序列。所以那也不是问题。

编辑:问题出在bestProb=prob中。应该是bestProb=prob[i]。对不起,麻烦。谢谢!

1 个答案:

答案 0 :(得分:0)

您需要调试<lib-autocomplete formControlName="state"></lib-autocomplete> 变量。尝试在Prob[i]语句之前添加print(Prob[i]),以观察if的内容。有时,它只是一个元素的数组,您只需要使其Prob[i]即可。如果那不起作用,那么您需要检查您的逻辑。