Я закончил тем, что изменил подход с общего
def piecewise_linear(x, x0, y0, k1, k2):
return np.piecewise(x, [x < x0], [lambda x:k1*x + y0-k1*x0, lambda x:k2*x + y0-k2*x0])
на
my_pwlf = pwlf.PiecewiseLinFit(x, y)
breaks = my_pwlf.fit(2) #if you want multiple breakpoints change the number in the bracket.
print(breaks)
x_hat = np.linspace(x.min(), x.max(), 100)
y_hat = my_pwlf.predict(x_hat)
Таким образом, я также получил значение x точки останова.