RuntimeWarning:reduce中遇到无效值

时间:2018-02-27 16:06:41

标签: python numpy runtime

numpy更新为版本1.14.1后,我在执行任何命令后收到以下警告消息(例如,键入1+1):

/home/username/anaconda3/lib/python3.6/site-packages/numpy
/core/_methods.py:26: RuntimeWarning: invalid value encountered in reduce
return umr_maximum(a, axis, None, out, keepdims)

现在有人问题是什么以及如何解决它?

2 个答案:

答案 0 :(得分:3)

我知道我要迟到五个月,但我的回答可能会对其他人有所帮助。

首先,警告表明您正在运行reduce的矩阵或在内部运行reduce的任何其他函数的矩阵都有一些无效值。这些无效值主要是NaNinf。我创建了一个小片段来解释我的意思!

在以下代码段中,我将创建一个变量x,其中包含一些无效值,然后运行一个内部使用reduce的函数,如numpy.amax()

>>> import numpy as np
>>>
>>> x = np.array([[0.2, 0.7], [np.nan, np.nan]])
>>> print(np.amax(x, axis=0)) 
RuntimeWarning: invalid value encountered in reduce
return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
[nan nan]

所以,我的建议是再次检查导致此问题的矩阵。.我不知道这是否与您相同,但对我有用!

下次,当您的代码遇到任何问题时...提供导致问题的代码总是一个好主意。

答案 1 :(得分:0)

因为数组中的某些值的值为 infNaN。在应用进一步操作之前检查您的阵列。