import numpy as np def extremum(x, y): """ Return extremum coordinates of quadratic fit """ p = np.polyfit(x, y, 2) f = np.poly1d(p) if p[0] != 0: x_ext = -p[1]/2/p[0] y_ext = f(x_ext) else: x_ext = None y_ext = None x_fit = np.linspace(min(x), max(x), 100) y_fit = f(x_fit) return (x_ext, y_ext, x_fit, y_fit)