Вопрос по оптимизации кода, чтоб сделать его быстрее.
Есть 2 списка одинаковой длинны:
y=[0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1]
x = [0, 0, 0.7, 0.5, 0.6, 0.7, 0, 0, 0, 0.8, 0.75, 0.6]
Нужно - где y_probs >= 0.6 посмотреть значение y_true. Если у него 1, то записываем win+=1, else loss+=1
А в конце считаем scoreee=win-loss
У меня получилась достаточно громоздкая функция
def cscoree(y_true, y_probs): win=0 loss=0 scoreee=0 i=0 while i < len(y_true): if y_probs[i] >= uver: if y_true[i] > 0: win+=1 else: loss+=1 i+=1 scoreee=win-loss return scoreee
Попытался это сделать через map c lambda, но получилось как-то криво)
new_list = list(map(lambda x,y: (y if (x >= 0.6) else 2), x, y)) scoreee = (new_list.count(1) - new_list.count(0))
Может через генераторы списков?
Вообще, как можно реализовать данный подсчет эффективней всего по скорости вычисления?
Заранее Спасибо!