Цель – использовать формулу, для простоты задаваемую следующим образом:
def my_formula(x):
return x + 5
в других функциях таким образом, чтобы не тратить время вычислений на необходимость постоянного обращения к формуле, как это делает Case_2. По сути, я пытаюсь достичь эффективности Case_1 и масштабируемости Case_2.
def Case_1():
for i in range(10000):
y = x + 5
def Case_2():
for i in range(10000):
y = my_formula()
Для меня это проблема из-за размера моего проекта и большого количества итераций, которым подвергаются эти формулы. В конечном счете, было бы лучше, если бы я мог вызвать функцию и оставить ее в памяти текущего случая.
Я пробовал использовать simpy и лямбдифицировать формулу как< /p>
formula = myformula(x)
numeric_formula = sp.lambdify(x, formula)
, надеялся, что это создаст более эффективный способ вызова формулы, но он всегда работал намного медленнее.
Я также пробовал вызывать ее в качестве ввода функции:
def case_3(n, formula=my_formula):
for x in range(n):
y = formula(x)
return 0
Просто для количественной оценки:
Scenario:_____|_Computation_time(s):___
Case_1 0.0035
Case_2 0.0060
Lambdifying 1.2700
Case_3 0.0060
Подробнее здесь: https://stackoverflow.com/questions/790 ... repeatedly
Самый эффективный способ многократного использования функции ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу объединить PHP и HTML в базовом элементе многократного использования?
Anonymous » » в форуме Php - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-