x = np.arange(1000)
y = 0.0001234 * x ** 2 + 3 * np.random.randn(len(x))
M = np.column_stack((x ** 2,))
k, _, _, _ = np.linalg.lstsq(M, y)
plt.plot(x, y, '.', x, k * x ** 2, 'r', linewidth=3)
plt.legend(('measurement', 'fit'), loc=2)
plt.title('best fit: y = {:.8f} * x**2'.format(k[0]))
plt.show()
numpy.polyfit with adapted parameters