如何在python中利用状态变量对for循环进行矢量化处理,即在计算过程中检查当前状态的for循环

时间:2020-03-05 10:33:45

标签: python for-loop vectorization

如何对以下具有当前状态内存的for循环进行矢量化处理(下面的变量“ 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

我已经搜索了2天的stackoverflow,但是找不到使用这样的状态变量的类似示例。如果我只是在错误的地方看,请接受我的道歉并指出正确的地方。再次感谢您的好帮手!

0 个答案:

没有答案