Python 數(shù)值區(qū)間處理_對(duì)interval 庫(kù)的快速入門詳解
使用 Python 進(jìn)行數(shù)據(jù)處理的時(shí)候,常常會(huì)遇到判斷一個(gè)數(shù)是否在一個(gè)區(qū)間內(nèi)的操作。我們可以使用 if else 進(jìn)行判斷,但是,既然使用了 Python,那我們當(dāng)然是想找一下有沒有現(xiàn)成的輪子可以用。事實(shí)上,我們可以是用 interval 這一個(gè)庫(kù)來完成我們需要的操作。
區(qū)間判斷基礎(chǔ)
最基礎(chǔ)的區(qū)間判斷操作就是先創(chuàng)建一個(gè)區(qū)間幾個(gè),然后使用 in 來判斷一個(gè)數(shù)是否存在于區(qū)間之內(nèi)。代碼如下:
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 創(chuàng)建一個(gè)集合,然后將我們想要比較的數(shù)用 in 即可得到結(jié)果。但是,我們都知道,我們的集合其實(shí)是有分開區(qū)間和閉區(qū)間的,上面的代碼中,創(chuàng)建的是 [2, 5] 的區(qū)間集合,那么假如我們想要?jiǎng)?chuàng)建一個(gè)如 (2, 5] 的集合,應(yīng)該如何呢?
請(qǐng)看下面的代碼:
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 創(chuàng)建集合的時(shí)候,使用 lower_closed 參數(shù),我們可以將集合區(qū)間下限設(shè)置為非閉區(qū)間,也就是開區(qū)間,這樣我們比較 2 是否在這個(gè)區(qū)間里的時(shí)候,返回的結(jié)果是 False。類似的,如果想?yún)^(qū)間上限設(shè)置為開區(qū)間,可以將 upper_closed 設(shè)置為 False,如果想直接創(chuàng)建一個(gè)開區(qū)間,那么久可以直接設(shè)置 closed 為 False。
集合的操作
Interval 有三種對(duì)集合區(qū)間的操作方法,分別是 join overlaps adjacent_to ,以下將演示以下這三個(gè)方法的用法:
zoom_1_3 = Interval(1, 3) zoom_1_5 = Interval(1, 5) zoom_o3_5 = Interval(3, 5, lower_closed=False) # join 合并兩個(gè)連續(xù)的區(qū)間集合 print(zoom_1_3.join(zoom_1_5)) >> [1..5] # overlaps 判斷兩個(gè)區(qū)間是否重復(fù) print(zoom_1_3.overlaps(zoom_1_5)) >> True print(zoom_1_3.overlaps(zoom_o3_5)) >> False # adjacent_to 判斷區(qū)間是否相鄰比重復(fù) print(zoom_1_3.adjacent_to(zoom_o3_5)) >> True
小結(jié)
interval 庫(kù)還提供了 IntervalSet 包,里面提供了對(duì)多個(gè) Interval 的操作,礙于篇幅的關(guān)系以及在實(shí)際應(yīng)用中場(chǎng)景的不同具體用法也不一樣,這里就不贅述了,向更深入了解可以使用 Ipython 進(jìn)入交互模式然后使用 help() 方法來查看具體不同方法的用法,這個(gè)庫(kù)里面都提供了詳細(xì)的說明。本文的介紹就到這里,希望對(duì)你有幫助。
以上這篇Python 數(shù)值區(qū)間處理_對(duì)interval 庫(kù)的快速入門詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用python把json文件轉(zhuǎn)換為csv文件
這篇文章主要介紹了使用python把json文件轉(zhuǎn)換為csv文件,幫助大家更好的利用python處理數(shù)據(jù),感興趣的朋友可以了解下2021-03-03
selenium+python實(shí)現(xiàn)基本自動(dòng)化測(cè)試的示例代碼
這篇文章主要介紹了selenium+python實(shí)現(xiàn)基本自動(dòng)化測(cè)試的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Python 實(shí)現(xiàn)國(guó)產(chǎn)SM3加密算法的示例代碼
這篇文章主要介紹了Python 實(shí)現(xiàn)國(guó)產(chǎn)SM3加密算法的示例代碼,幫助大家更好的理解和學(xué)習(xí)密碼學(xué),感興趣的朋友可以了解下2020-09-09
Python+Tkinter實(shí)現(xiàn)軟件自動(dòng)更新與提醒
這篇文章主要為大家詳細(xì)介紹了Python如何利用Tkinter編寫一個(gè)軟件自動(dòng)更新與提醒小程序,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以動(dòng)手嘗試一下2023-07-07

