我遇到了FloatingPointError:在一段测试代码中减去了遇到的无效值.异常开始在代码本身没有任何变化的情况下被提出,所以我在理解它时遇到了很多麻烦.

我的问题:在减去异常时遇到无效值的原因是什么?为什么在python numpy的不同安装上它的行为会有所不同?

细节:

此MWE不会引发FloatingPointError:

>>> import numpy as np

>>> np.__version__

'1.6.1'

>>> x = np.arange(5,dtype='float64')

>>> y = np.ones(5,dtype='float64')

>>> x[2]=np.nan

>>> x-y

# array([ -1., 0., nan, 2., 3.])

但是,在一段代码的深处,我减去了两个np.float64 ndarray对象,并得到一个浮点异常.导致异常的数组包含一些非常庞大和微小的数字(例如,1e307和1e-307)和一些nans,但我没有将这些数字的任何组合导致我自己的异常测试.

更令人不安的是,我有一个大网格的Jenkins测试运行完全相同的代码与许多版本的numpy,matplotlib,python和scipy,并且没有它们引发这个异常.我在这一点上迷路了 – 我不知道是否有错误,或者是否存在,如何追踪它.

如果您感到好奇,那么有问题的代码是pyspeckit,测试在test_hr2421.py的第20行失败.

编辑:后续 – 我认为这个小片段:np.seterr(invalid =’raise’)是在我导入的模块中调用的,特别是pymc,并且拉请求已经阻止了这个更改.

最佳答案 Numpy在如何处理错误方面具有可配置的行为.默认情况下会忽略某些错误,其他错误会导致警告.对于每个类别,您可以更改此行为.有人必须将其设置为引发错误,而不是将其更改回来.

您可以通过调用numpy.seterr(invalid =’warn’)或者invalid =’ignore’来抑制此异常.有关可能错误的完整列表,请阅读numpy.seterr的文档.

您还可以使用上下文管理器:

In [12]: x = np.arange(-5, 5,dtype='float64')

In [13]: with np.errstate(divide="raise"):

print(1/x)

....:

---------------------------------------------------------------------------

FloatingPointError Traceback (most recent call last)

in ()

1 with np.errstate(divide="raise"):

----> 2 print(1/x)

3

FloatingPointError: divide by zero encountered in true_divide

In [14]: with np.errstate(divide="warn"):

print(1/x)

....:

/home/users/gholl/venv/stable-3.5/bin/ipython3:2: RuntimeWarning: divide by zero encountered in true_divide

[-0.2 -0.25 -0.33333333 -0.5 -1. inf

1. 0.5 0.33333333 0.25 ]

In [15]: with np.errstate(divide="ignore"):

print(1/x)

....:

[-0.2 -0.25 -0.33333333 -0.5 -1. inf

1. 0.5 0.33333333 0.25 ]

我倾向于将整个代码包装在一个带有np.errstate(all =“raise”)的块中,然后使用上下文管理器忽略特定条件,如果我确定问题没有隐藏错误 – 通常是,虽然.

python减法报错_python – numpy FloatingPointError:减法中遇到的值无效 – 不可重现?...相关推荐

  1. python 等号报错_Python学习----Python基础

    Python基础 一.数据类型和变量 1.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量. 例如: a =520# a是整数prin ...

  2. python语法报错_Python语法的常见错误和处理异常

    在学习Python的过程中,一定会遇到很多困难,我相信很多时候的,报错就会是让人抓狂,一个好的程序员最主要的特质,就是处理错误的能力.在面对每次遇到的问题,要多总结多做笔记,争取下次避免犯同样的错误, ...

  3. python程序报错_Python编程报错总汇

    1 使用变量时,输入错误 message = "Hello Python Crash Course reader!" print(mesage) 变量错误 Traceback (m ...

  4. python deepcopy报错_python 字典对象赋值之deepcopy遭遇的问题及解决过程(lxml惹的祸)...

    今天在写一段代码的时候,需要对字典进行传值操作. 一般情况下字典a = 字典b,意味着是传引用,b发送改变的情况下a也会发生改变. 我的字典如下 a={'testcase': {'attributes ...

  5. python index 报错_python基础语法常见报错类型

    一.TypeError:类型错误,对象⽤来表示值的类型⾮预期类型时发⽣的错误. ### 错误例⼦: age=18 print('我的年龄是'+age) ### 报错信息:TypeError:canon ...

  6. python 命名空间报错_python命名空间与作用域

    命名空间不共享名称. 在命名空间中的名称能将任何python对象作为值,在不同的命名空间中相同的名称可以与不同的对象相关联.但是,如果存在名称解析协议,则多个命名空间可以一起工作来解析名称.也就是说, ...

  7. python listdir报错_Python常见十六个错误集合,你知道那些?

    使用python会出现各种各样的错误,以下是Python常见的错误以及解决方法. 1.ValueError: 'Conv2d_1a_3×3' is not a valid scope name 这个是 ...

  8. [转载] python缩进报错_python缩进报错

    参考链接: Python语句,缩进和注释 广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 学习 python 与其他语言最大的区 ...

  9. python display 报错_Python中的函数(三)

    Python中的函数(三) 在前面两篇文章中已经探讨了函数的一些相关用法,下面一起来了解一下函数参数类型的问题.在C语言中,调用函数时必须依照函数定义时的参数个数以及类型来传递参数,否则将会发生错误, ...

最新文章

  1. 字幕小工具 SubTool Released
  2. jmeter(2)录制脚本
  3. html:(6):body标签和p标签
  4. linux内核Kconfig语法
  5. 100+诡异的数据集,20万Eclipse Bug、死囚遗言等
  6. VT-x is not available (VERR_VMX_NO_VMX).无法打开虚拟机,无法新建64位虚拟机
  7. php 学习笔记之日期时间操作一箩筐
  8. 测绘——利用CASS及数据库批量导出/修改/更新地籍信息
  9. 【python教程入门学习】Pygame下载和安装
  10. java 详情页_电商网站详情页系统架构
  11. vue-router路由文档详解
  12. 最快下载速度100Mbps!4G LTE技术全解析
  13. 关于美颜滤镜您了解多少?
  14. !!只保留文本中的中英文和符号.,其余都删除
  15. 移位和循环移位指令 shl, shr sal, sar, sol, sor, scl, scr, shld, shrd
  16. 【Verilog零基础入门-边看边练】学习笔记——第七讲 时序逻辑代码设计和仿真(三角波发生器)(一)
  17. html input 密文,HTML input text框显示为密文
  18. nodejs压缩成7z_[Node] 传智NodeJS前端与移动开发顶级全套视频教程完整版
  19. Centos系统如何开启关闭防火墙
  20. 入职第一天,我接手了号称【屎山】的祖传代码,这还能卷吗???

热门文章

  1. 10大程序员实用网站,好网站不藏私
  2. 根据健身追踪者的说法,厕纸有脉动
  3. 让你的右键菜单变成美艳绝伦
  4. VS2013 2015 2017 新建默认UTF-8文件
  5. cst基基基础(1)
  6. python推箱子文档_python实现推箱子游戏
  7. Colab使用教程(超级详细版)及Colab Pro/Colab Pro+评测
  8. Linpack之HPL测试 (HPL Benchmark)
  9. 解决IDEA中文乱码
  10. IIS搭建网络服务器