У меня есть две переменные (var1
, var2
), которые должны увеличиваться с шагом 0.1
каждая л oop каждый раз, когда переменная loop
достигает 30000.
Вот что я мы делали
while loop < 300000 and var1<3 and var2<3:
function(var1,var2,random)
loop+=1
if loop == 300000:
loop=0
var1+=0.1
if var1>3:
var=1
var2+=0.1
Таким образом, моя функция будет перебирать все значения от 1 до 3 из обоих значений.
Слон в комнате очевиден: этот код очень медленный. Есть ли лучший способ решения этой проблемы?
Вот пример моей функции
def function():
index_high = np.argmax(df[random_number:,2] > var1 * fixed_value)
index_low = np.argmax(df[random_number:,1] < var2 * fixed_value)
if index_high < index_low:
high_counter+=1
if index_high > index_low:
low_counter+=1
for random in random_list(30000):
function(var1, var2,random)
Вот что делает код:
1 - подобрать случайное число от random_list()
, затем применяется;
2 - применение значений random
, var1
, var2
к index_high
и index_low lines
;
3 - найти в зависимости от того, что выше и выше счетчика;
Это нужно будет сделать с 300000 случайных чисел. Есть ли способ:
- Вырезать при l oop, чтобы сделать функцию более эффективной.
- Удалить двойные IF-циклы и все еще увеличивать обе переменные?