У меня есть эта упрощенная программа для замены значений в массиве, которые удовлетворяют условиям:Заменить значение в массиве с условием
formula1=2*2
formula2=5*2
formula3=4*4
array = np.random.rand(2,4,10)
for n,i in enumerate(array):
if i>0.5: #find value in array with this condition
formula = formula1
array[n] = array[n]*formula #replace the found value with this value
elif i <0.1:
formula = formula2
array[n] = array[n]*formula
else:
formula = formula3
array[n] = array[n]*formula
print array
Это привело к сообщению об ошибке: "Значение истинности массива с более чем один элемент неоднозначный. Используйте a.any() или a.all() '. Любое предложение?
Вы можете добавить полное отслеживающий? – syntonym
@syntonym if i <0.5: ValueError: Значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any() или a.all() –
В вашем цикле for 'i' является массивом. Как бы вы определили, является ли массив меньшим, чем заданное значение? 'any()' проверяет, является ли какой-либо из элементов в массиве меньшим, чем заданное значение, и 'all()' проверяет, являются ли все элементы – SvbZ3r0