Ваш цикл for запускается только один раз из-за способа его настройки.
Вы заключаете возврат np.arrange(0.1.0.01)
в список, который нарушает способ выполнения цикла for. Вы получаете только одно значение, потому что цикл for выполняется только один раз, поскольку во внешнем списке есть только один элемент.
>>> cutoff_list = [np.arange(0,1,0.01)]
>>> cutoff_list
[array([0. , 0.01, ... 0.98, 0.99])]
>>> type(cutoff_list)
<class 'list'>
Вы хотите получить фактический массив numpy:
>>> cutoff_list = np.arange(0,1,0.01)
>>> cutoff_list
array([0. , 0.01, ... 0.98, 0.99])
>>> type(cutoff_list)
<class 'numpy.ndarray'>
Изменитьстроку cutoff_list = [np.arange(0,1,0.01)]
до cutoff_list = np.arange(0,1,0.01)
и посмотрите, решит ли это вашу проблему.
Я бы также подумал, что вы хотите использовать v
вместо i
в этой строке:
predicted = np.where(df.indicator > i, 1, 0)
в качестве i
будет содержать только перечисляемое значение, которое вы используете в качестве ключа для своего dict, тогда как v
будет содержать значения от cutoff_list
.