RuntimeWarning:最大值遇到无效值

gre*_*iod 8 python runtime-error numpy max nan

numpy中奇怪的行为(bug ??)与文档相反,以下代码给出了在fmax中遇到的RuntimeWarning:invalid值

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)
Run Code Online (Sandbox Code Playgroud)

我被卡住了,因为我需要在我的阵列中使用这些NaN,现在我的功能在这个该死的警告中停止在iPython中(好吧,他们真的不会停止,但它相当烦人)

编辑:

numpy 1.6.1

ipython 0.13.1

tyl*_*eha 12

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

如果您不想再看到这些特定错误,只需按照您的意愿修改numpy的警告设置:

np.seterr(invalid='ignore')
Run Code Online (Sandbox Code Playgroud)

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

  • 如果您知道将抛出此错误的确切行,则使用numpy上下文管理器`与np.errstate(invalid ='ignore'):`可能是更安全的替代方法. (10认同)