Python数値区間処理-intervalライブラリのクイックスタート

3351 ワード

Pythonを用いてデータ処理を行う場合,1つの数が1つの区間内にあるか否かを判断する操作に遭遇することが多い.if elseで判断できますが、Pythonを使用している以上、既製のホイールがあるかどうかを探しています.実際には、intervalというライブラリを使用して、必要な操作を完了することができます.
区間判定の基礎
最も基本的な区間判定動作は、まず1つの区間数を作成し、inを用いて1つの数が区間内に存在するか否かを判定することである.コードは次のとおりです.
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には、集合区間に対する3つの操作方法があり、それぞれjoin overlaps adjacent_toであり、以下の3つの方法の使用方法を示す.
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()メソッドを使用して具体的な異なる方法の使い方を見ることができる.面はすべて詳しい説明を提供しました.本文の紹介はここまでで、あなたに役に立つことを望んでいます.