ValueError: Значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any () или a.all () для сравнения элементов - PullRequest
0 голосов
/ 03 октября 2019

У меня есть два массива типа float (сравни и hh3). Я хочу сравнить каждый элемент «сравнить» с элементом «hh3», и результат будет добавлен к другому вектору. Pp.

Я искал ошибку на этом веб-сайте и знаю причину ее появления. Сравнение «если a> b» не работает, если a и b являются массивами

#hh3 is a array of length 70
#pp is an zero vector of a specified length
K = 0
compare = np.arange(1, 2, 1e-4)
compare_size = len(compare)

for j in range(compare_size):
     for i in range(no*nos):
        if hh3[i] >= compare[j]:
          pp[K] = pp[K] + 1
        if pp[K] == 0:
          break
      K = K + 1

В конце я хочу сравнить каждый элемент i hh3 с каждым элементом сравнения j. Ошибка возникает в "if hh3 [i]> = сравни [j]:"

1 Ответ

1 голос
/ 03 октября 2019

Этот тип ошибки возникает, когда вы предоставляете условию if таблицу / список логических значений вместо логического скаляра.

В вашем случае, вероятно, у вас есть hh3[i] >= compare[j] или pp[K] == 0, которыевозвращает массив логических значений.

Возможно, вы захотите убедиться, что hh3.shape и pp.shape имеют тип ( value ,).

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