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的Bottle框架的一些使用技巧介绍
Apr 08 Python
Python中最常用的操作列表的几种方法归纳
Apr 24 Python
Python中的hypot()方法使用简介
May 18 Python
Python中二维列表如何获取子区域元素的组成
Jan 19 Python
python3.4下django集成使用xadmin后台的方法
Aug 15 Python
Python IDLE清空窗口的实例
Jun 25 Python
浅谈Python中函数的定义及其调用方法
Jul 19 Python
Django单元测试工具test client使用详解
Aug 02 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
Mar 06 Python
python Selenium 库的使用技巧
Oct 16 Python
详解Python中如何将数据存储为json格式的文件
Nov 18 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 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中session使用示例
2014/03/29 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
php中Snoopy类用法实例
2015/06/19 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
js常用代码段整理
2011/11/30 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
python对url格式解析的方法
2015/05/13 Python
Python实现全角半角字符互转的方法
2016/11/28 Python
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
python3中的md5加密实例
2018/05/29 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
python简单区块链模拟详解
2019/07/03 Python
windows下python安装pip方法详解
2020/02/10 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
测量实习生自我鉴定
2013/09/19 职场文书
关于环保的演讲稿
2014/05/10 职场文书
建议书的格式及范文
2015/09/14 职场文书
2016年小学生清明节广播稿
2015/12/17 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python