将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)
现在有人问题是什么以及如何解决它?
答案 0 :(得分:3)
我知道我要迟到五个月,但我的回答可能会对其他人有所帮助。
首先,警告表明您正在运行reduce
的矩阵或在内部运行reduce
的任何其他函数的矩阵都有一些无效值。这些无效值主要是NaN
或inf
。我创建了一个小片段来解释我的意思!
在以下代码段中,我将创建一个变量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)
因为数组中的某些值的值为 inf
或 NaN
。在应用进一步操作之前检查您的阵列。