Это должно быть довольно простое недоразумение с моей стороны. У меня есть функция, которая возвращает функцию интерполяции на основе случайных значений.
fct = create_interp_fct(x,y)
Теперь fct - это вызываемая функция интерполяции. Например:
fct([0,0,0,0,0,0])
возвращает
array([[ 0.75894378, 0.72761319, -0.23003647, -0.34790905, -0.51531125,
-0.91211147]])
Функция определяется примерно следующим образом:
def create_interp_fct(x,y):
u,v = compute_some_random_values(x,y)
return RegularGridInterpolator(u,v) #from from scipy.interpolate
Проблема заключается в том, что если я вызову fct([0,0,0,0,0,0]) снова получаю другой вывод. Таким образом, очевидно, что функция переопределена на основе новых случайных значений. Мой вопрос: как я могу использовать fct , чтобы он не переопределялся при каждом вызове? Представьте себе, что вычисление fct очень дорого, но называть его нет. Как я могу "сохранить" мою текущую вычисленную функцию? Или, например, посмотрите на все машинное обучение из scikit (линейная регрессия и т. Д.). Если я позвоню
lr = lm.LinearRegression() # import sklearn.linear_model as lm
lr.fit(M,n)
, вы не сможете сказать мне, что каждый раз, когда я вызываю lr.score (M, n), линейная регрессия пересчитывается?