Python里面有个inf是干啥的
文章目录
- 背景
- 环境
- 测试
- 应用
背景
我们偶尔会在别人代码里面看到Python
里面有个inf
,这是干啥的呢.
inf
代表infinite
,表示无限,亦即我们高中学过的无穷.
inf
分为正无穷inf
或+inf
和负无穷-inf
Python
中的表示方法是float('inf')
和float('-inf')
环境
Python
3.8
测试
把常规的运算和比较都测试一遍+ - * / % // > == < !=
,结果我就直接汇总了
符号 | 数字 | inf | -inf |
---|---|---|---|
+ | 1 | inf | -inf |
0 | inf | -inf | |
- | 1 | inf | -inf |
* | 1 | inf | -inf |
0 | nan | nan | |
-1 | -inf | inf | |
/ | 1 | inf | -inf |
0 | ZeroDivisionError | ZeroDivisionError | |
-1 | -inf | inf | |
/ | 1/ | 0.0 | -0.0 |
0/ | 0.0 | 0.0 | |
-1/ | -0.0 | 0.0 | |
% | 1 | nan | nan |
0 | ZeroDivisionError | ZeroDivisionError | |
-1 | nan | nan | |
% | 1% | 1.0 | -inf |
0% | 0.0 | -0.0 | |
-1% | inf | -1.0 | |
// | 1 | nan | nan |
0 | ZeroDivisionError | ZeroDivisionError | |
-1 | nan | nan | |
// | 1// | 0.0 | -1.0 |
0// | 0.0 | -0.0 | |
-1// | -1.0 | 0.0 | |
> | 0 | True | False |
== | 0 | False | False |
< | 0 | False | True |
!= | 0 | True | True |
除了*0
,%1
,%-1
,//1
,//-1
为nan
,其他的基本符合预期
应用
这种极限值,一般会在什么时候用到呢
举个例子,求极值,也就是最大值,最小值的时候.用inf
比取随机值作为初始值可要优雅而准确得多
假设有列表如下
num = [5,2,7,9,1,6,9]
我们需要求其中的最大值,常规做法如下
maxnum = num[0]
for n in num:if n > maxnum:maxnum = n
但是现在我们可以这么做
maxnum = float('-inf')
for n in num:if n > maxnum:maxnum = n
感觉真的是优雅好多.
求最小值初始值用float('inf')
就好,一样的遍历思路
Python里面有个inf是干啥的相关推荐
- Python实现《明日方舟》干员寻访模拟器第二期:间接学习变化序列抽取目标事件和序列精确索引内容的经验
上一期的文章我们实现了<明日方舟>干员寻访模拟器单次抽奖的功能,了解了random.choice这个函数的特点,通过原始奖池机制把等可能转化为不等可能,上一期我们还编写了一个便捷的不等可能 ...
- python调参工作都是干啥的_xgboost原理及调参方法-通俗易懂版本
xgboost是各种比赛中最常使用的方法,网上介绍非常多,但是大部分看起来都比较费劲,这篇文章我将通俗的讲一下xgboost是在干什么,是怎么实现的,每一步的细节中要注意什么问题,达到理解-应用的程度 ...
- Python实现《明日方舟》干员寻访模拟器第三期:原始但实用的卡池机制,不过要小心!
上一期文章我们实现了比较完善的单次抽奖函数,成功地在默认卡池中抽取单个结果,并且解决了一个微小但致命的问题,今天我们着手进行<明日方舟>干员寻访模拟器的实现,如果您忘记了上一期的内容,或者 ...
- python调参工作都是干啥的_Python中Gradient Boosting Machine(GBM)调参方法详解
1.前言 如果一直以来你只把GBM当作黑匣子,只知调用却不明就里,是时候来打开这个黑匣子一探究竟了! 这篇文章是受Owen Zhang (DataRobot的首席产品官,在Kaggle比赛中位列第三) ...
- python中的成员运算符是干嘛的_在Python中使用成员运算符的示例
下表列出了所有Python语言支持的成员运算符. 例如: 试试下面的例子就明白了所有的Python编程语言提供会员运算符: #!/usr/bin/python a = 10 b = 20 list = ...
- python中scrapy的middleware是干嘛的_Python之爬虫(十九) Scrapy框架中Download Middleware用法...
这篇文章中写了常用的下载中间件的用法和例子. Downloader Middleware处理的过程主要在调度器发送requests请求的时候以及网页将response结果返回给spiders的时候,所 ...
- python年份天干地支代码_Python------天干地支纪年及星座计算
干支是天干,地支的合称,干和支组合后用于纪年. 就是将十天干和十二地支按顺序搭配组合成干支,用于纪年. 把干支顺序相配正好六十为一周,周而复始,循环记录,永无止尽. 十大天干:甲 乙 丙 丁 戊 己 ...
- python调参工作都是干啥的_知乎 | 计算机视觉工程师一天都大致在做些什么?
点击上方"机器学习与生成对抗网络",关注"星标" 获取有趣.好玩的前沿干货! from知乎,3d视觉工坊编辑:著作权归作者,侵删 观点一 作者|张旭 https ...
- python中itertools groupby函数是干嘛的_Python-如何使用itertools.groupby()?
小编典典 重要说明:你必须先对数据进行排序. 我没有得到的部分是在示例构造中 groups = [] uniquekeys = [] for k, g in groupby(data, keyfunc ...
- python中scrapy的middleware是干嘛的_python爬虫常用之Scrapy 中间件
一.概述 1.中间件的作用 在scrapy运行的整个过程中,对scrapy框架运行的某些步骤做一些适配自己项目的动作. 例如scrapy内置的HttpErrorMiddleware,可以在http请求 ...
最新文章
- 【直播】杨剑砺:数据可视化漫谈
- js老生常谈之this,constructor ,prototype
- 为了金秋那沉甸甸的麦穗,我绝不辜负春天
- 为什么要重写hashcode方法和equals方法
- 想做开源软件开发谁能带一下呀
- azure云数据库_Azure SQL数据库中的高级数据安全性–数据发现和分类
- linux下tomcat启动后出现多个java进程
- 2017程序员综合素质调研测试
- python mro算法_Python MRO C3算法实现
- Autojs实现图片转字符串(简易ocr预备步骤)
- en开头的单词_英语四级en-词汇前后缀解析
- css 设置文本字体间距及首行缩进
- MySQL数据库的查询语句的应用
- 求教吉他继续提高的方法
- 产品经理的5分钟统计课:产品/用户/数据平均情况是怎样?
- KSO - sqlserver事务实现
- 【PHP】php 递归、效率和分析
- Spring Boot 异常错误处理
- 基于MATLAB的手写体数字识别算法的实现
- mysql ora01031_as sysdba 出现ORA-01031: insufficient privileges 解决办法