Я пытаюсь написать скрипт, который имитирует систему химических реакций во времени. Одним из входных данных функции является следующий массив:
popul_num = np.array([200, 100, 0, 0])
Который содержит количество дискретных молекул каждого вида в системе. Часть основной функции содержит оператор if
, предназначенный для проверки положительности числа молекул. if
обрабатывается до следующей итерации, else
выходит из всей симуляции
if popul_num.any() < 0: # Any method isn't working! --> Does .any() work on arrays or just lists?
print("Break out of loop negative molecule numbers")
tao_all = tao_all[0:-1]
popul_num_all = popul_num_all[0:-1]
else:
break
Я использовал .any()
, чтобы попытаться найти, является ли какой-либо элемент массива popul_num
отрицательным. Но это не работает, не выдает ошибку, система просто никогда не вводит оператор if, и я не могу понять, почему?
Я только что запустил программу, и система вернула окончательное число молекул: [135 -19 65 54]
программа должна была завершиться до того, как второй элемент достиг -19.
Какие-либо предложения?
Ваше здоровье
any(iterable)
- person Aditya   schedule 27.06.2020if np.any(popul_num < 0): # do_stuff
илиif (popul_num < 0).any(): #do_stuff
. Вы начинаете с построения логического массива перед применениемany
. - person alani   schedule 27.06.2020