Python 數(shù)值區(qū)間處理_對interval 庫的快速入門詳解
使用 Python 進行數(shù)據(jù)處理的時候,常常會遇到判斷一個數(shù)是否在一個區(qū)間內(nèi)的操作。我們可以使用 if else 進行判斷,但是,既然使用了 Python,那我們當然是想找一下有沒有現(xiàn)成的輪子可以用。事實上,我們可以是用 interval 這一個庫來完成我們需要的操作。
區(qū)間判斷基礎
最基礎的區(qū)間判斷操作就是先創(chuàng)建一個區(qū)間幾個,然后使用 in 來判斷一個數(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)建一個集合,然后將我們想要比較的數(shù)用 in 即可得到結果。但是,我們都知道,我們的集合其實是有分開區(qū)間和閉區(qū)間的,上面的代碼中,創(chuàng)建的是 [2, 5] 的區(qū)間集合,那么假如我們想要創(chuàng)建一個如 (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 創(chuàng)建集合的時候,使用 lower_closed 參數(shù),我們可以將集合區(qū)間下限設置為非閉區(qū)間,也就是開區(qū)間,這樣我們比較 2 是否在這個區(qū)間里的時候,返回的結果是 False。類似的,如果想?yún)^(qū)間上限設置為開區(qū)間,可以將 upper_closed 設置為 False,如果想直接創(chuàng)建一個開區(qū)間,那么久可以直接設置 closed 為 False。
集合的操作
Interval 有三種對集合區(qū)間的操作方法,分別是 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 合并兩個連續(xù)的區(qū)間集合 print(zoom_1_3.join(zoom_1_5)) >> [1..5] # overlaps 判斷兩個區(qū)間是否重復 print(zoom_1_3.overlaps(zoom_1_5)) >> True print(zoom_1_3.overlaps(zoom_o3_5)) >> False # adjacent_to 判斷區(qū)間是否相鄰比重復 print(zoom_1_3.adjacent_to(zoom_o3_5)) >> True
小結
interval 庫還提供了 IntervalSet 包,里面提供了對多個 Interval 的操作,礙于篇幅的關系以及在實際應用中場景的不同具體用法也不一樣,這里就不贅述了,向更深入了解可以使用 Ipython 進入交互模式然后使用 help() 方法來查看具體不同方法的用法,這個庫里面都提供了詳細的說明。本文的介紹就到這里,希望對你有幫助。
以上這篇Python 數(shù)值區(qū)間處理_對interval 庫的快速入門詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
macbook如何徹底刪除python的實現(xiàn)方法
本文主要介紹了macbook如何徹底刪除python的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07Python在內(nèi)網(wǎng)安裝python第三方包(庫)的方法
日常我們工作的計算機環(huán)境是內(nèi)網(wǎ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根據(jù)時間生成mongodb的ObjectId的方法
這篇文章主要介紹了python根據(jù)時間生成mongodb的ObjectId的方法,涉及Python操作mongodb數(shù)據(jù)庫的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03python中利用隊列asyncio.Queue進行通訊詳解
asyncio是Python 3.4版本引入的標準庫,直接內(nèi)置了對異步IO的支持。 下面這篇文章主要給大家介紹了關于python中利用隊列asyncio.Queue進行通訊的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。2017-09-09Django更新models數(shù)據(jù)庫結構步驟
這篇文章主要介紹了Django更新models數(shù)據(jù)庫結構的操作步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python?按規(guī)則解析并替換字符串中的變量及函數(shù)(示例代碼)
這篇文章主要介紹了Python?按規(guī)則解析并替換字符串中的變量及函數(shù),本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-11-11