man*_*ing 3 python matplotlib zipf
我试图用 Python 中的 Zipf 分布 PDF F~x^(-a)拟合以下图(红点)。我只是选择a=0.56并绘制了y = x^(-0.56),我得到了如下所示的曲线。
曲线显然是错误的。我不知道如何进行曲线拟合。

小智 5
不确定您到底在寻找什么,但如果您想将模型(函数)拟合到数据,请使用scipy.optimize.curve_fit:
from scipy.optimize import curve_fit
from scipy.special import zetac
def f(x, a):
return (x**-a)/zetac(a)
result = curve_fit(f, x, y, p0=[0.56])
p = result[0]
print p
Run Code Online (Sandbox Code Playgroud)
如果您不相信规范化,请添加第二个参数b并进行拟合。