Python 数值区间处理_对interval 库的快速入门详解


Posted in Python onNovember 16, 2018

使用 Python 进行数据处理的时候,常常会遇到判断一个数是否在一个区间内的操作。我们可以使用 if else 进行判断,但是,既然使用了 Python,那我们当然是想找一下有没有现成的轮子可以用。事实上,我们可以是用 interval 这一个库来完成我们需要的操作。

区间判断基础

最基础的区间判断操作就是先创建一个区间几个,然后使用 in 来判断一个数是否存在于区间之内。代码如下:

from interval import Interval
zoom_2_5 = Interval(2, 5)
print(zoom_2_5)
>> [2..5]
print(2 in zoom_2_5)
>> True
print(6 in zoom_2_5)
>> False

我们可以从上面的代码看到,我们先使用 Interval 创建一个集合,然后将我们想要比较的数用 in 即可得到结果。但是,我们都知道,我们的集合其实是有分开区间和闭区间的,上面的代码中,创建的是 [2, 5] 的区间集合,那么假如我们想要创建一个如 (2, 5] 的集合,应该如何呢?

请看下面的代码:

zoom_o2_5 = Interval(2, 5, lower_closed=False)
print(zoom_o2_5)
>> (2..5]
print(2 in zoom_o2_5)
>> False
zoom_o2_o5 = Interval(2, 5, closed=False)
print(zoom_o2_o5)
>> (2..5)

从上面的代码可以看到,在使用 Interval 创建集合的时候,使用 lower_closed 参数,我们可以将集合区间下限设置为非闭区间,也就是开区间,这样我们比较 2 是否在这个区间里的时候,返回的结果是 False。类似的,如果想区间上限设置为开区间,可以将 upper_closed 设置为 False,如果想直接创建一个开区间,那么久可以直接设置 closed 为 False。

集合的操作

Interval 有三种对集合区间的操作方法,分别是 join overlaps adjacent_to ,以下将演示以下这三个方法的用法:

zoom_1_3 = Interval(1, 3)
zoom_1_5 = Interval(1, 5)
zoom_o3_5 = Interval(3, 5, lower_closed=False)
# join 合并两个连续的区间集合
print(zoom_1_3.join(zoom_1_5))
>> [1..5]
# overlaps 判断两个区间是否重复
print(zoom_1_3.overlaps(zoom_1_5))
>> True
print(zoom_1_3.overlaps(zoom_o3_5))
>> False
# adjacent_to 判断区间是否相邻比重复
print(zoom_1_3.adjacent_to(zoom_o3_5))
>> True

小结

interval 库还提供了 IntervalSet 包,里面提供了对多个 Interval 的操作,碍于篇幅的关系以及在实际应用中场景的不同具体用法也不一样,这里就不赘述了,向更深入了解可以使用 Ipython 进入交互模式然后使用 help() 方法来查看具体不同方法的用法,这个库里面都提供了详细的说明。本文的介绍就到这里,希望对你有帮助。

以上这篇Python 数值区间处理_对interval 库的快速入门详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 返回汉字的汉语拼音
Feb 27 Python
python中定义结构体的方法
Mar 04 Python
在Python中使用lambda高效操作列表的教程
Apr 24 Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
Jun 28 Python
Python文件循环写入行时防止覆盖的解决方法
Nov 09 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
Sep 25 Python
如何查看Django ORM执行的SQL语句的实现
Apr 20 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
Python中对象的比较操作==和is区别详析
Feb 12 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 #Python
Python补齐字符串长度的实例
Nov 15 #Python
python实现对指定字符串补足固定长度倍数截断输出的方法
Nov 15 #Python
Python 输入一个数字判断成绩分数等级的方法
Nov 15 #Python
基于numpy中数组元素的切片复制方法
Nov 15 #Python
对Python中list的倒序索引和切片实例讲解
Nov 15 #Python
对pandas里的loc并列条件索引的实例讲解
Nov 15 #Python
You might like
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
详解redux异步操作实践
2018/08/15 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
Python中使用中文的方法
2011/02/19 Python
讲解Python中if语句的嵌套用法
2015/05/14 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
采用怎样的方法保证数据的完整性
2013/12/02 面试题
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
监察建议书范文
2014/03/12 职场文书
中国梦读书活动总结
2014/07/10 职场文书
英语辞职信怎么写
2015/02/28 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书
2016年母亲节寄语
2015/12/04 职场文书
PHP解决高并发问题
2021/04/01 PHP
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python