- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Python 中运行一个非常耗时的后处理器,遇到了一个 FloatingPointError
,而我期待的是一个 ZeroDivisionError
。
我的代码在 try
except
语句中捕获了 ZeroDivisionError
的可能性:
try: a = b / abs(c)
except ZeroDivisionError: a = 'divZero'
但是,我收到以下错误:
FloatingPointError: divide by zero encountered in divide
为什么我会收到此错误?
最佳答案
如果出现以下情况,就会发生这种情况:
division
设置为 error
。既然您已经声明您已经从数组中获取了数字,那么这些数字很可能是 numpy 版本。您可以使用 numpy.geterr()
检查错误状态.您可能在代码中的某处调用了 numpy.seterr()
或 numpy.errstate()
,或者您正在使用的库调用了。
例如,您可以按如下方式获取FloatingPointError
:
In [22]: np.seterr(divide="raise")
Out[22]: {'divide': 'raise', 'over': 'warn', 'under': 'ignore', 'invalid': 'warn'}
In [24]: b = np.float32(1)
In [25]: c = np.float32(0)
In [26]: a = b / c
---------------------------------------------------------------------------
FloatingPointError Traceback (most recent call last)
<ipython-input-26-809085b5049b> in <module>()
----> 1 a = b / c
FloatingPointError: divide by zero encountered in float_scalars
如果 b
和 c
是 numpy 整数而不是 float ,则 float_scalars
将改为 short_scalars
。请注意,numpy 对象从不 导致ZeroDivisionError
。如果您有错误状态 divide='ignore'
或 divide='warn'
,a/0
的结果将是 inf
,a//0
的结果将是 0
。
虽然我无法重现您的准确错误消息,但这可能是由于 numpy
的不同版本(我使用的是 1.14.5)。
关于python - 除以零时获取 FloatingPointError 而不是 ZeroDivisionError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45162478/
我正在计算两个 numpy 数组(都是 float32 )的点积。我故意设置 numpy 来提高 FloatingPointError在溢出的情况下。然而,dot行为不符合预期:而不是引发 Float
Python 文档说当 float 计算失败时会引发 FloatingPointError。但是,“浮点计算” 在这里的确切含义是什么?我尝试用 float 进行加法、乘法和除法,但从未设法引发此特定
我在 Python 中运行一个非常耗时的后处理器,遇到了一个 FloatingPointError,而我期待的是一个 ZeroDivisionError。 我的代码在 try except 语句中捕获
我不太熟悉 python 中的异常,所以我想在这里解决问题。 numpy 中有两种不同的 FloatingPointError 异常: import numpy as np import sys np
我尝试运行此代码: import pandas as pd import seaborn as sns df = pd.DataFrame(clusters, columns=cols) sns.cl
在 being unsuccessful in using decorators 之后为了定义“指数随机变量的对数”的随机对象,我决定使用 pymc.stochastic_from_dist 为这个新
当我想查看涉及缺失数据的数据时,我收到了 FloatingPointError。 import numpy as np import pandas as pd np.seterr(all='raise
我是一名优秀的程序员,十分优秀!