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的身份证号码自动生成程序
Aug 15 Python
Python中的__new__与__init__魔术方法理解笔记
Nov 08 Python
python数据结构之图深度优先和广度优先实例详解
Jul 08 Python
十条建议帮你提高Python编程效率
Feb 16 Python
人工智能最火编程语言 Python大战Java!
Nov 13 Python
pandas series序列转化为星期几的实例
Apr 11 Python
详解python之heapq模块及排序操作
Apr 04 Python
Tensorflow实现酸奶销量预测分析
Jul 19 Python
使用pyecharts1.7进行简单的可视化大全
May 17 Python
django实现日志按日期分割
May 21 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 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
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
PHP getName()函数讲解
2019/02/03 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
php生成微信红包数组的方法
2019/09/05 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
感恩老师演讲稿400字
2014/08/28 职场文书
中秋晚会活动方案
2014/08/31 职场文书
离职感谢信
2015/01/21 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang