Scipy运行时警告

时间:2014-02-26 14:22:14

标签: python scipy

我正在使用ndimage来填充多种形状(详细地,我使用命令ndimage.binary_fill_holesndimage.labelndimage.sumndimage.center_of_mass)。当我运行代码时,我收到以下警告:

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/
 python/scipy/ndimage/measurements.py:1163: RuntimeWarning: invalid 
 value encountered in divide
results = [sum(input * grids[dir].astype(float), labels, index) / 
 normalizer for dir in range(input.ndim)]

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

只有当您拥有0/0inf/inf部门时,才会收到此错误。

这意味着,在列表理解中for循环的至少一种情况下,您的变量normalizer AND同时sum()的返回值都是{{1 }或两者0

生成错误的代码段属于+/-infsource)。

您是如何致电center_of_mass(input, labels=None, index=None)的?

如果您未指定center_of_mass()label,则有一种可能性。在这种情况下,仅当输入数组的均值为零时,变量index才可以为零。在这种情况下,您可以在通话前检查normalizer的值吗?一个微不足道的可能性是输入是一个零数组。在这种情况下,您会获得input.sum()

如果您提供0/0label,则在调用index之前输入有任何问题。

如果您不知道问题的原因/位置,请尝试打印一些数据。此类错误的结果是center_of_mass()值:nan将返回类似center_of_mass()的元组。