Mam następujący kod:Przełęcz krotka jako argument wejściowy dla scipy.optimize.curve_fit
import numpy as np
from scipy.optimize import curve_fit
def func(x, p): return p[0] + p[1] + x
popt, pcov = curve_fit(func, np.arange(10), np.arange(10), p0=(0, 0))
to podniesie Błąd typu: func() wykonuje dokładnie 2 argumenty (3 podany). No cóż, to brzmi fair - curve_fit wypalić (0, 0) na dwa wejścia skalarne. Więc próbowałem to:
popt, pcov = curve_fit(func, np.arange(10), np.arange(10), p0=((0, 0),))
Ponownie, to powiedział: ValueError: Przedmiot zbyt głęboko do żądanej tablicy
Gdybym opuścił go jako domyślny (nie określającego P0):
popt, pcov = curve_fit(func, np.arange(10), np.arange(10))
Wzniesie on IndexError: nieprawidłowy indeks do zmiennej skalarnej. Oczywiście, dała tylko funkcję skalarną dla p.
mogę zrobić def func (x, P1, P2): Powrót P1 + P2 + x, aby dostać pracę, ale z bardziej skomplikowanych sytuacjach kod będzie wyglądać gadatliwym i niechlujny. Naprawdę bym to uwielbiał, gdyby było czystsze rozwiązanie tego problemu.
Dzięki!
Czy podejście to być przedłużony tylko krotka 2 wartości? A co z 3,4,5 itd.? – wandadars