ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

нужно найти сумму отрицательных элементов матрицы

есть такой код:

import numpy as np
row = 5; sum1=0
a=np.array ([[0, 2.4, -6, 5, 0.8], 
             [1.5, 0, 0, -4.3, -3.5], 
             [0, 1.8, 3.2, -1.2, -1.3],
             [0, 0, -2.3, 0, -7.2],
             [3.3, -0.8, 0, 3.5, 8]])
print (a)
print('---------------------------')
b = a*5.18
print(b)
for i in a:
    if i < 0:
        sum1 += i
print ('Sum -numbers: ', sum1)

на выходе получаю подобную ошибку

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Ответы (1 шт):

Автор решения: Alex Alex

Правильно, i - это не элемент, а целая строка матрицы. При сравнении с нулем получается не True/False, а вектор. Используй логическую индексацию.

print(np.sum(a[a<0]))
→ Ссылка