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 相关文章推荐
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
Python 错误和异常代码详解
Jan 29 Python
Python3实现定时任务的四种方式
Jun 03 Python
TensorFlow实现自定义Op方式
Feb 04 Python
python实现同一局域网下传输图片
Mar 20 Python
利用python对excel中一列的时间数据更改格式操作
Jul 14 Python
Python创建临时文件和文件夹
Aug 05 Python
Python如何急速下载第三方库详解
Nov 02 Python
tensorflow2.0教程之Keras快速入门
Feb 20 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 Python
手残删除python之后的补救方法
Jun 26 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 header函数分析详解
2011/08/06 PHP
php实现的CSS更新类实例
2014/09/22 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
2017/01/04 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
nodejs开发——express路由与中间件
2017/03/24 NodeJs
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
2017/09/20 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
vue组件是如何解析及渲染的?
2021/01/13 Vue.js
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
Python的多维空数组赋值方法
2018/04/13 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
解决django FileFIELD的编码问题
2020/03/30 Python
如何表示python中的相对路径
2020/07/08 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
德国网上宠物店:Zoobio
2018/05/23 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
大学在校生求职信范文
2013/11/21 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
中文专业求职信
2014/06/20 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
《社戏》教学反思
2016/02/22 职场文书
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记