Что предоставляют массивы numpy при выполнении вычислений на основе времени, когда состояние имеет значение. Другими словами, важно то, что произошло раньше или позже в последовательности.
Рассмотрим следующие векторы, основанные на времени,
TIME = np.array([0., 10., 20., 30., 40., 50., 60., 70., 80., 90.])
FLOW = np.array([100., 75., 60., 20.0, 60.0, 50.0, 20.0, 30.0, 20.0, 10.0])
TEMP = np.array([300., 310., 305., 300., 310., 305., 310., 305., 300., 295.0])
Пусть ' s говорят, что экспоненциальный спад в TEMP должен применяться, когда FLOW упадет ниже 30, не поднимаясь снова выше 50. В приведенных выше данных функция будет применяться при TIME = 60 выше, и последние два значения TEMP будут обновлены этим вторичная функция, которая начиналась бы с соответствующего значения TEMP.
Необходимо «заглядывать вперед», чтобы определить, поднимется ли FLOW выше 50 в элементах после запроса условия <30. Не похоже, что функции numpy нацелены на векторы, основанные на времени, где важно состояние, и традиционный метод вложенных циклов for, возможно, остается подходящим вариантом. Но, учитывая мою новизну в numpy и тот факт, что мне приходится выполнять множество подобных манипуляций, основанных на состоянии, я был бы признателен за направление или подтверждение.