#scipy #scipy-optimize
#сципи #scipy-оптимизация
Вопрос:
Я хотел получить максимальную оценку для следующей функции в mu и sigma, используя scipy, где s определяется как образец
s = np.random.normal(mu, sigma, 100)
def f(mu, sigma): x = norm.pdf(s,mu,sigma) x = np.prod(x) x = np.log(x) return x
Я пытался
x0 = [0,1] bounds = [(-5,5),(-5,5)] print(optimize.minimize(f, x0, method='SLSQP', bounds=bounds))
но продолжайте получать ошибку:
f() отсутствует 1 требуемый позиционный аргумент: «сигма»
Я не совсем понимаю, что здесь происходит
Ответ №1:
Вам нужно передать аргументы в f
виде вектора:
def f(z): mu, sigma = z x = norm.pdf(s,mu,sigma) x = np.prod(x) x = np.log(x) return x
Комментарии:
1. Это сработало, спасибо!
2. Рад, что это так, пожалуйста, утвердите ответ, если тема закрыта. @пользователь135520