1
""" ___ """
from scipy.optimize import minimize
import numpy as np
LENGTH = 100
def process(x):
return x * 2 + 5
def draw(process, length):
""" """
y = np.random.normal(0, 10, length)
data = [process(y_) for y_ in y]
rnd = np.random.normal(3, 1, len(data))
return y, rnd + data
def maximum_likelyhood(y, X):
objective = lambda b: np.transpose(X) * (y - X * b)
x0 = np.zeros(100)
res = minimize(objective, x0=x0)
return res.x
y, X = draw(process, LENGTH)
print maximum_likelyhood(y, X)
產生ValueError:使用序列設置數組元素。 SciPy的減少
ValueError: setting an array element with a sequence.
有幾個類似的問題,他們都指出,X0是不是一維數組,但在這裏它是一維數組。 (或不是?請解釋爲什麼以及如何使它成爲1D)
看看scipy.optimize.root函數,而不是scipy.optimize.minimize函數 – Covich