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合并字典键值并去除重复元素的实例
Dec 18 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
python实现小球弹跳效果
May 10 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
python列表推导式操作解析
Nov 26 Python
python-web根据元素属性进行定位的方法
Dec 13 Python
使用Django清空数据库并重新生成
Apr 03 Python
sqlalchemy实现时间列自动更新教程
Sep 02 Python
python中pdb模块实例用法
Jan 15 Python
新手必备Python开发环境搭建教程
May 28 Python
在python中读取和写入CSV文件详情
Jun 28 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密
2011/01/07 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
PHP 类与构造函数解析
2017/02/06 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
Angular实现form自动布局
2016/01/28 Javascript
基于JS实现checkbox全选功能实例代码
2016/10/31 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
vue项目中使用tinymce编辑器的步骤详解
2018/09/11 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
python 线程的暂停, 恢复, 退出详解及实例
2016/12/06 Python
Python笔试面试题小结
2019/09/07 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
什么是封装
2013/03/26 面试题
名企HR怎样看待求职信
2014/02/23 职场文书
标准化管理实施方案
2014/02/25 职场文书
网络信息安全承诺书
2014/03/26 职场文书
入党积极分子群众意见
2015/06/01 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书