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 del()函数用法
Mar 24 Python
简单谈谈Python中的几种常见的数据类型
Feb 10 Python
Pandas 按索引合并数据集的方法
Nov 15 Python
修改python plot折线图的坐标轴刻度方法
Dec 13 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
python模拟点击网页按钮实现方法
Feb 25 Python
Python猜数字算法题详解
Mar 01 Python
基于python 凸包问题的解决
Apr 16 Python
Django filter动态过滤与排序实现过程解析
Nov 26 Python
python实现三种随机请求头方式
Jan 05 Python
python中常用的数据结构介绍
Jan 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/12/25 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
php实现转换html格式为文本格式的方法
2016/05/16 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
Python模拟登录验证码(代码简单)
2016/02/06 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
Python实现分段线性插值
2018/12/17 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
StubHub巴西:购买和出售您的门票
2016/07/22 全球购物
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
事业单位人员的自我评价范文
2014/09/21 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
2015年教务工作总结
2015/05/23 职场文书
跳高加油稿
2015/07/21 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书