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中enumerate的用法实例解析
Aug 18 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
May 03 Python
用Pygal绘制直方图代码示例
Dec 07 Python
利用Hyperic调用Python实现进程守护
Jan 02 Python
PyQt5通信机制 信号与槽详解
Aug 07 Python
wxpython布局的实现方法
Nov 01 Python
Python图片的横坐标汉字实例
Dec 04 Python
Python之关于类变量的两种赋值区别详解
Mar 12 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
May 15 Python
Django model.py表单设置默认值允许为空的操作
May 19 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
Sep 23 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
PHP操作XML中XPath的应用示例
2019/07/04 PHP
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
JS实现下拉框的动态添加(附效果)
2013/04/03 Javascript
简单时间提示DEMO从0开始一直进行计时
2013/11/19 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
js实现查询商品案例
2020/07/22 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
python k-近邻算法实例分享
2014/06/11 Python
Python安装第三方库的3种方法
2015/06/21 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
Python异常处理操作实例详解
2018/08/28 Python
详解python中的Turtle函数库
2018/11/19 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
python爬虫添加请求头代码实例
2019/12/28 Python
Python流程控制常用工具详解
2020/02/24 Python
python创建文本文件的简单方法
2020/08/30 Python
银行办公室岗位职责
2014/03/10 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
python unittest单元测试的步骤分析
2021/08/02 Python
python使用shell脚本创建kafka连接器
2022/04/29 Python
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers