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查询阿里巴巴关键字排名的方法
Jul 08 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
Python yield与实现方法代码分析
Feb 06 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
python使用udp实现聊天器功能
Dec 10 Python
Python3.5以上版本lxml导入etree报错的解决方案
Jun 26 Python
python文字转语音的实例代码分析
Nov 12 Python
Python3的unicode编码转换成中文的问题及解决方案
Dec 10 Python
Python decorator拦截器代码实例解析
Apr 04 Python
python实现126邮箱发送邮件
May 20 Python
selenium自动化测试入门实战
Dec 21 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
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
php文件上传简单实现方法
2015/01/24 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
js 目录列举函数
2008/11/06 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
详解.vue文件解析的实现
2018/06/11 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
python MD5加密的示例
2020/10/19 Python
StubHub巴西:购买和出售您的门票
2016/07/22 全球购物
百联网上商城:i百联
2017/01/28 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
css animation配合SVG制作能量流动效果
2021/03/24 HTML / CSS
计算机网络专业个人的自我评价
2013/10/17 职场文书
日语专业毕业生求职信
2013/12/04 职场文书
文明演讲稿范文
2014/05/12 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
党纪处分决定书
2015/06/24 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
python中__slots__节约内存的具体做法
2021/07/04 Python
springboot读取resources下文件的方式详解
2022/06/21 Java/Android