【发布时间】:2015-08-05 13:28:47
【问题描述】:
我在尝试运行 stats.boxcox(list) 时收到 RuntimeWarning: divide by zero encountered in log 错误。
该列表不包含零值。我参考了其他一些帖子说我们可以使用np.errstate() 忽略错误。
但是,就我而言,我认为这是不合适的,因为stats.boxcox() 返回的值是没有意义的(都是常量,见下文)。
array([ 0.11472901, 0.11472901, 0.11472901, 0.11472901, 0.11472901,
0.11472901, 0.11472901, 0.11472901, 0.11472901, 0.11472901,
0.11472901, 0.11472901, 0.11472901, 0.11472901, 0.11472901,
0.11472901, 0.11472901, ... ... ]
错误详情如下:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/stats/morestats.py:591: RuntimeWarning: divide by zero encountered in log
llf -= N / 2.0 * np.log(np.sum((y - y_mean)**2. / N, axis=0))
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/optimize/optimize.py:2063: RuntimeWarning: invalid value encountered in double_scalars
w = xb - ((xb - xc) * tmp2 - (xb - xa) * tmp1) / denomenter code here
【问题讨论】:
-
您可能希望在此处更具体。您使用的是哪个版本的
scipy?如果您只使用list的前10 个值,是否也会发生这种情况?如果是这样,您能否向我们展示这些值,以便我们尝试重现您的问题? -
@cel 我使用的是 scipy 版本 0.15.1。该列表包含 494 个号码。如果我随机删除 2 个数字,则不会出现问题。
-
你传入的是一个 ndarray,而不是一个列表,对吧?
-
是的。我正在使用 nparray。我改为列出,但我仍然得到同样的错误。
-
正如@FrancoPiccolo 指出的那样,您可能遇到了github.com/scipy/scipy/issues/6873 中报告的错误。这已在 scipy 的开发分支中修复。修复将在下一个版本中(scipy 1.3)。
标签: python scipy divide-by-zero