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中的数据存储模块shelve的用法
Mar 03 Python
pycharm安装图文教程
May 02 Python
详解python string类型 bytes类型 bytearray类型
Dec 16 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
tensorflow实现从.ckpt文件中读取任意变量
May 26 Python
python中元组的用法整理
Jun 15 Python
keras中的History对象用法
Jun 19 Python
Keras SGD 随机梯度下降优化器参数设置方式
Jun 19 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
如何利用Python 进行边缘检测
Oct 14 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
桌面中心(三)修改数据库
2006/10/09 PHP
用PHP和ACCESS写聊天室(七)
2006/10/09 PHP
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
PHP中替换键名的简易方法示例详解
2014/01/07 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
Vue入门之数据绑定(小结)
2018/01/08 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
js实现简单扫雷
2020/11/27 Javascript
详解vue v-model
2020/08/31 Javascript
动态创建类实例代码
2009/10/07 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
2017/05/23 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
python2.7实现爬虫网页数据
2018/05/25 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
python语言中有算法吗
2020/06/16 Python
Python实现异步IO的示例
2020/11/05 Python
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
一些高难度的SQL面试题
2016/11/29 面试题
关于递归的一道.NET面试题
2013/05/12 面试题
团日活动总结书格式
2014/05/08 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
Python 数据科学 Matplotlib图库详解
2021/07/07 Python