【发布时间】:2019-11-21 17:16:45
【问题描述】:
我想使用 SciPy 计算(不仅仅是绘制)加权数据的 KDE。 但是,尽管我在 the official documentation 找到了这些内容,但我似乎无法将所有三个参数都传递给函数。
例如这段代码:
from scipy import stats
values = np.random.lognormal(size=1000)
weights = np.random.choice([1.0,10.0,100.0], size=len(values))
kde_pdf = stats.gaussian_kde(np.log10(values), 'scott', weights)
导致错误TypeError: __init__() takes at most 3 arguments (4 given)
我尝试了关键字和非关键字参数的其他排列,但似乎没有任何效果。如何从加权数据中获取 KDE pdf?
【问题讨论】:
-
为我工作。你能检查一下你正在使用哪个版本的 scipy(使用
pip freeze | grep scipy或在你的 python 控制台中scipy.__version__)? -
在 scipy 1.2.0 中,
gaussian_kde增加了对权重的处理。 -
谢谢(两位)你们!这就是问题所在!我以为我已经将我的 SciPy 更新到了最新版本,但这不起作用,但
scipy.__version__返回 1.1.0 。经过一番痛苦,我设法安装了 1.2.1,现在它可以工作了!
标签: python scipy arguments kernel-density