Ошибка значения: истинное значение массива с более чем одним элементом неоднозначно - PullRequest
1 голос
/ 31 марта 2019

У меня есть код 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 голосов
/ 31 марта 2019

Вам нужно отладить переменную Prob[i]. Попробуйте добавить print(Prob[i]) перед вашим if оператором, чтобы увидеть содержание Prob[i]. Иногда это просто массив из одного элемента, и вам нужно только сделать его Prob[i][0]. Если это не работает, вам нужно проверить свою логику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...