2013-03-04 80 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

相關問題