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的Django框架的运行方式及处理流程
Apr 08 Python
python实现下载指定网址所有图片的方法
Aug 08 Python
深入讲解Java编程中类的生命周期
Feb 05 Python
教你用Type Hint提高Python程序开发效率
Aug 08 Python
详解js文件通过python访问数据库方法
Mar 03 Python
微信小程序python用户认证的实现
Jul 29 Python
使用python写的opencv实时监测和解析二维码和条形码
Aug 14 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
python匿名函数的使用方法解析
Oct 10 Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 Python
Django使用rest_framework写出API
May 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
php array_intersect()函数使用代码
2009/01/14 PHP
php中设置多级目录session的问题
2011/08/08 PHP
php清除和销毁session的方法分析
2015/03/19 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
javascript div 弹出可拖动窗口
2009/02/26 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
python和c语言的主要区别总结
2019/07/07 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
python 绘制国旗的示例
2020/09/27 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
广播节目策划方案
2014/05/23 职场文书
企业宗旨标语
2014/06/10 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
高中优秀作文(范文)
2019/08/15 职场文书