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调用存储过程示例
Mar 05 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
Nov 29 Python
python opencv实现信用卡的数字识别
Jan 12 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
python实现吃苹果小游戏
Mar 21 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
python,Java,JavaScript实现indexOf
Sep 09 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
python Matplotlib基础--如何添加文本和标注
Jan 26 Python
Python Matplotlib绘制条形图的全过程
Oct 24 Python
详解OpenCV获取高动态范围(HDR)成像
Apr 29 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
jQuery 获取URL参数的插件
2010/03/04 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
Python中使用dom模块生成XML文件示例
2015/04/05 Python
判断网页编码的方法python版
2016/08/12 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
留学自荐信的技巧
2013/10/17 职场文书
公司办公室岗位职责
2014/03/19 职场文书
诚信考试标语
2014/06/24 职场文书
Pygame Time时间控制的具体使用详解
2021/11/17 Python
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS