我有一个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]
。对不起,麻烦了。谢谢! 最佳答案
您需要调试Prob[i]
变量。尝试在您的print(Prob[i])
语句之前添加一个if
以观察Prob[i]
的内容。有时,它只是一个元素的数组,您只需将其设置为Prob[i][0]
。如果那不起作用,那么您需要检查您的逻辑。
关于python - 值错误:具有多个元素的数组的真值不明确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55439433/