Как мне векторизовать следующее для l oop, который имеет память о своем текущем состоянии (переменная 'current_state' ниже)? Я здесь тривиализировал функцию, реальная немного сложнее, но структура та же самая - она просто работает на слишком большом массиве, чтобы экономить время. В итоге: мне нужно знать, когда и сколько раз сигнал, сохраненный в 'test_array', пересекает определенный или пороговый уровень:
test_array = [0,1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1]
results_array = []
current_state = '<=3'
for i in range(len(test_array)):
if current_state == 'mid' and test_array[i] >= 7:
current_state = '>=7'
results_array.append((i,current_state))
if current_state == 'mid' and test_array[i] <= 3:
current_state = '<=3'
results_array.append((i,current_state))
if current_state == '>=7' and test_array[i] < 7:
current_state = 'mid'
results_array.append((i,current_state))
if current_state == '<=3' and test_array[i] > 3:
current_state = 'mid'
results_array.append((i,current_state))
print results_array
Я искал stackoverflow в течение 2 дней, но не могу найдите похожий пример, который использует переменную состояния, подобную этой. Если я просто смотрю не в том месте, примите мои извинения и укажите мне в нужном месте. Еще раз спасибо, добрые владельцы кодов!