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]))