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文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 Python
基于Python闭包及其作用域详解
Aug 28 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
Apr 17 Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
Python 中Django安装和使用教程详解
Jul 03 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
keras实现多种分类网络的方式
Jun 11 Python
Python常用数据分析模块原理解析
Jul 20 Python
python dict如何定义
Sep 02 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Oct 16 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新手上路(十一)
2006/10/09 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
python实现堆栈与队列的方法
2015/01/15 Python
使用python实现链表操作
2018/01/26 Python
Python中反射和描述器总结
2018/09/23 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
如何通过命令行进入python
2020/07/06 Python
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
经典C++面试题一
2016/11/06 面试题
有模特经验的简历自我评价
2013/09/19 职场文书
学生实习自我鉴定
2013/10/11 职场文书
顶岗实习接收函
2014/01/09 职场文书
施工协议书范本
2014/04/22 职场文书
政风行风整改方案
2014/10/25 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
MySQL创建管理子分区
2022/04/13 MySQL
Python开发五子棋小游戏
2022/05/02 Python