numpy.seterrobj

numpy.seterrobj(errobj)

设置定义浮点错误处理的对象。

错误对象包含在numpy中定义错误处理行为的所有信息。 seterrobj 由设置错误处理行为的其他函数在内部使用 (seterrseterrcall

参数
errobj列表

错误对象,包含三个元素的列表: [内部numpy缓冲区大小、错误掩码、错误回调函数] .

错误掩码是一个整数,它保存所有四个浮点错误的处理信息。每种错误类型的信息都包含在整数的三位中。如果我们以8为基数打印它,我们可以看到为“无效”、“不足”、“超过”和“划分”(按该顺序)设置了什么处理。打印字符串可以用

  • 0:“忽略”

  • 1:“警告”

  • 2:“提高”

  • 3:“呼叫”

  • 4:“打印”

  • 5:“日志”

笔记

有关浮点异常类型和处理选项的完整文档,请参见 seterr .

实例

>>> old_errobj = np.geterrobj()  # first get the defaults
>>> old_errobj
[8192, 521, None]
>>> def err_handler(type, flag):
...     print("Floating point error (%s), with flag %s" % (type, flag))
...
>>> new_errobj = [20000, 12, err_handler]
>>> np.seterrobj(new_errobj)
>>> np.base_repr(12, 8)  # int for divide=4 ('print') and over=1 ('warn')
'14'
>>> np.geterr()
{'over': 'warn', 'divide': 'print', 'invalid': 'ignore', 'under': 'ignore'}
>>> np.geterrcall() is err_handler
True