2013-03-04 79 views
7

numpy中的怪异行为(bug ??)。相反的是文档,下面的代码给出了一个RuntimeWarning:在fmax的RuntimeWarning:遇到最大值无效值

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

+2

什么版本?我只是试过你的代码,并没有得到警告 – lxop 2013-03-04 00:34:35

+0

哦,我正在运行1.6.2 – lxop 2013-03-04 00:40:04

+0

这个安装是在Win7盒子上安装EPD。 numpy 1.6.1-3,ipython 0.13.1-2。对于numpy 1.7.0和ipython 0.13.1的盒子,我也没有更多的警告...也许1.6.1是越野车.. – 2013-03-04 01:16:42

回答

7

我也遇到同样的问题。这些警告是numpy的一个有意的方面,以告知用户何时可能遇到框架的某些限制。上面的代码仍然返回c的值,所以它工作正常。

如果您不想再看到这些具体的错误,只需修改numpy的的警告设置,你想用:

np.seterr(invalid='ignore') 

而且你不会看到无效值的警告了。

+7

如果你知道这个错误将被抛出的确切路线,使用numpy上下文管理器'用np.errstate(invalid ='ignore'):'可能是一个更安全的选择。 – Erik 2016-06-24 17:01:10

相关问题