Pythonで2つの日時の間に24時間以上経過したかどうかを確認する方法
Pythonで2つの日時の間に24時間が経過したかどうかを確認するには、日付の計算を行う必要があります。2つのdatetimeオブジェクトがある場合、それらを引き算すると、結果としてtimedeltaオブジェクトが得られます。このtimedeltaオブジェクトを使って比較を行います。
なお、timedeltaオブジェクトは整数(int)と直接比較することができません。そのため、total_seconds()メソッドを使って、まず経過時間を秒数として取り出す必要があります。
サンプルコード
from datetime import datetime
NUMBER_OF_SECONDS = 86400 # 24時間の秒数
first = datetime(2017, 10, 10)
second = datetime(2017, 10, 12)
if (first - second).total_seconds() > NUMBER_OF_SECONDS:
print("1日以上経過しています!")実行結果
上記のコードを実行すると、以下のような出力が得られます。
1日以上経過しています!
解説
- 86400秒は24時間に相当します(24 × 60 × 60 = 86400)。
- 2つのdatetimeオブジェクトの差を取ると、timedeltaオブジェクトが返されます。
total_seconds()メソッドでtimedeltaを総秒数(float型)に変換することで、数値との比較が可能になります。
この方法を使えば、任意の期間(1時間、1週間など)が経過したかどうかも、比較する秒数を変更するだけで簡単に判定できます。
-
Pythonでヒストグラムに対数ビンを設定する方法
Matplotlibのplt.hist()メソッドでは、bins引数に値を指定することで、ヒストグラムを描画する際に対数ビン(ログスケールの区切り)を設定できます。この記事では、np.logspace()を使って対数スケール上に等間隔に配置されたビンを生成し、それをヒストグラムに適用する手順を解説します。 手順 範囲が100の配列xを作成します。 plt.hist()メソッドでヒストグラムを描画します。bins引数には、対数スケール上で等間隔に配置された数値を返すnp.logspace()を渡し、対数ビンを指定します。 plt.gca()で現在の軸を取得し(存在しない場合は自動的に作成されま
-
Pythonのscikit-learnを使って画像の輪郭を検出する方法
scikit-learn(通称:sklearn)は、機械学習アルゴリズムを実装するために使用されるPythonのライブラリです。オープンソースとして公開されているため、無料で利用できます。このライブラリは、NumPy・SciPy・Matplotlibという3つのライブラリを基盤として構築されています。画像から輪郭を抽出する際には、「マーチングスクエア法(marching squares)」と呼ばれる手法が用いられます。具体的には、skimageライブラリのmeasureモジュールに含まれる「find_contours」関数を使用します。この関数では、配列内の値が線形補間されるため、出力画像にお