Многочисленные векторные операции на основе времени, когда состояние предшествующих элементов имеет значение - подходят ли для циклов?

Что предоставляют массивы 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 и тот факт, что мне приходится выполнять множество подобных манипуляций, основанных на состоянии, я был бы признателен за направление или подтверждение.

5
задан tnt 6 December 2010 в 11:43
поделиться