运行时警告:在最大值中遇到无效值
在numpy中出现了奇怪的行为(是不是bug??)。和文档说的不一样,下面的代码会给出一个运行时警告:在fmax中遇到了无效值
a = np.random.uniform(0.1, 0.4, (5, 5))
b = np.random.uniform(0, 3.5, (5, 5))
b[0, 0] = np.nan
c = np.fmax(a, b) # Same problem with c = np.maximum(a, b)
我现在很困扰,因为我需要在我的数组中保留这些NaN(不是数字),而且现在我的函数在iPython中因为这个烦人的警告而停止运行(其实它们并没有真的停止,但这实在是太烦人了)
编辑:
numpy版本 1.6.1
ipython版本 0.13.1
1 个回答
15
我也遇到过同样的问题。这些警告是numpy故意设计的,目的是提醒用户在使用这个框架时可能会遇到一些限制。上面代码中的c
值仍然会返回,所以它的功能是正常的。
如果你不想再看到这些特定的错误警告,可以按照下面的代码来修改numpy的警告设置:
np.seterr(invalid='ignore')
这样你就不会再看到无效值的警告了。