Python 數(shù)值區(qū)間處理_對interval 庫的快速入門詳解
使用 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è)庫來完成我們需要的操作。
區(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)該如何呢?
請看下面的代碼:
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 有三種對集合區(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 庫還提供了 IntervalSet 包,里面提供了對多個(gè) Interval 的操作,礙于篇幅的關(guān)系以及在實(shí)際應(yīng)用中場景的不同具體用法也不一樣,這里就不贅述了,向更深入了解可以使用 Ipython 進(jìn)入交互模式然后使用 help() 方法來查看具體不同方法的用法,這個(gè)庫里面都提供了詳細(xì)的說明。本文的介紹就到這里,希望對你有幫助。
以上這篇Python 數(shù)值區(qū)間處理_對interval 庫的快速入門詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
macbook如何徹底刪除python的實(shí)現(xiàn)方法
本文主要介紹了macbook如何徹底刪除python的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Python在內(nèi)網(wǎng)安裝python第三方包(庫)的方法
日常我們工作的計(jì)算機(jī)環(huán)境是內(nèi)網(wǎng),做項(xiàng)目需要安裝python?第三方庫,在外網(wǎng)一般使用"pip?install?包名"很快就安裝上了,但是在內(nèi)網(wǎng)無法連接pypi網(wǎng)站或者國內(nèi)鏡像,那該如何安裝呢,下面小編給大家?guī)砹薖ython如何在內(nèi)網(wǎng)安裝python第三方包庫,感興趣的朋友一起看看吧2024-01-01Python?queue雙端隊(duì)列模塊及用法小結(jié)
雙端隊(duì)列是一種具有隊(duì)列和棧性質(zhì)的線性數(shù)據(jù)結(jié)構(gòu),本文主要介紹了Python?queue雙端隊(duì)列模塊及用法小結(jié),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02python根據(jù)時(shí)間生成mongodb的ObjectId的方法
這篇文章主要介紹了python根據(jù)時(shí)間生成mongodb的ObjectId的方法,涉及Python操作mongodb數(shù)據(jù)庫的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03python中利用隊(duì)列asyncio.Queue進(jìn)行通訊詳解
asyncio是Python 3.4版本引入的標(biāo)準(zhǔn)庫,直接內(nèi)置了對異步IO的支持。 下面這篇文章主要給大家介紹了關(guān)于python中利用隊(duì)列asyncio.Queue進(jìn)行通訊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09Django更新models數(shù)據(jù)庫結(jié)構(gòu)步驟
這篇文章主要介紹了Django更新models數(shù)據(jù)庫結(jié)構(gòu)的操作步驟,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python?按規(guī)則解析并替換字符串中的變量及函數(shù)(示例代碼)
這篇文章主要介紹了Python?按規(guī)則解析并替換字符串中的變量及函數(shù),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11