Кажется, что у вас есть X-значения, которые слишком близки к нулю, вы можете показать значения, которые вы отправляете в log_x = np.log10 (x)?
Чтобы использовать np.polyfit, просто напишите
coeff = np.polyfit(np.log10(x), np.log10(y), deg = 1)
coeff теперь будет списком [a, b] с вашими коэффициентами для соответствия первой степени (следовательно, deg = 1) точкам данных (log (x), log (y)). Если вы хотите дисперсию в коэффициентах, используйте
coeff, cov = np.polyfit(np.log10(x), np.log10(y), deg = 1, cov = True)
. Cov теперь ваша ковариационная матрица.