Я новичок в Python, и я застрял в попытке использовать optimize.curve_fit для набора данных.это линейная функция, которую я хочу использовать
Y=b*X+c
- X_data - это матрица 5x10
- Y_data - это массив 1x5
- b - это массив из 10 элементов
c - это число с плавающей точкой
z=np.array(data['Delta.m/sec2'])
w, h = 10, 5;
X=np.matrix( [[0 for x in range(w)] for y in range(h)], dtype='float64')
Y=np.array( [[0 for x in range(h)]], dtype='float64')
for i in range(h):
Y[0, i]=z[i]
for j in range(w):
X[i, j]=z[i+j+1]
def func1(x, b, c):
return np.inner(x, b)+c
from scipy import optimize
c=0.1
b=np.array(np.ones(10))
p0 = [b, c]
w = optimize.curve_fit(func1, X, Y, p0)
Я не смог ничего получить, поскольку я получаю следующую ошибку
TypeError: Неправильный ввод: N = 2 не должно превышать M = 1