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实现简单登录验证
Apr 13 Python
python requests 使用快速入门
Aug 31 Python
shell命令行,一键创建 python 模板文件脚本方法
Mar 20 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
Aug 26 Python
python获取array中指定元素的示例
Nov 26 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
解决python3.6用cx_Oracle库连接Oracle的问题
Dec 07 Python
python drf各类组件的用法和作用
Jan 12 Python
Python 语言实现六大查找算法
Jun 30 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正则表达式使用的详细介绍
2013/04/27 PHP
深入PHP与浏览器缓存的分析
2013/06/03 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
PHP pear安装配置教程
2016/05/14 PHP
Javascript Math对象
2009/08/13 Javascript
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
JS获取url链接字符串 location.href
2013/12/23 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
2014/06/16 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
js 转义字符及URI编码详解
2017/02/28 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
Python版微信红包分配算法
2015/05/04 Python
Python lxml模块安装教程
2015/06/02 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
Python Lambda函数使用总结详解
2019/12/11 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
师范大学毕业自我鉴定
2013/11/21 职场文书
如何写一份好的自荐信
2014/01/02 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
家长会欢迎标语
2014/06/24 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
2016年国陪研修感言
2015/11/18 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书