Python Pandas – datetime.timeオブジェクトのNumPy配列を返す方法
Pythonのdatetime.timeオブジェクトからなるNumPy配列を返すには、PandasのDatetimeIndex.timeプロパティを使用します。このプロパティを使うと、DatetimeIndex内の各Timestampから時刻部分だけを抽出できます。
DatetimeIndex.timeプロパティとは
DatetimeIndex.timeは、インデックスに含まれる各Timestampの時刻情報を、タイムゾーン情報なしでdatetime.timeオブジェクトとして返します。日付部分が必要な場合は、同様にDatetimeIndex.dateプロパティを使うことでdatetime.dateオブジェクトの配列を取得できます。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
DatetimeIndexの作成
期間(periods)を3、頻度(freq)をナノ秒「ns」に設定してDatetimeIndexを作成します。タイムゾーンはオーストラリアのシドニー(Australia/Sydney)を指定します。
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=3, tz='Australia/Sydney', freq='ns')
DatetimeIndexの表示
作成したDatetimeIndexを表示してみましょう。
print("DateTimeIndex...\n", datetimeindex)
時刻部分のみを抽出する
.timeプロパティにアクセスすると、タイムゾーン情報を含まない時刻部分のみが返されます。
print("\nThe numpy array (time part)..\n", datetimeindex.time)
サンプルコード全体
以下に完全なコードを示します。
import pandas as pd
# periods=3、freq=ナノ秒(ns)でDatetimeIndexを作成
# タイムゾーンはAustralia/Sydneyを指定
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=3, tz='Australia/Sydney', freq='ns')
# DatetimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)
# Timestampの日付部分のみを返す(タイムゾーン情報なし)
print("\nThe numpy array (date part)..\n", datetimeindex.date)
# Timestampの時刻部分のみを返す(タイムゾーン情報なし)
print("\nThe numpy array (time part)..\n", datetimeindex.time)
実行結果
上記のコードを実行すると、以下のような出力が得られます。
DateTimeIndex... DatetimeIndex([ '2021-10-20 02:30:50+11:00', '2021-10-20 02:30:50.000000001+11:00', '2021-10-20 02:30:50.000000002+11:00'], dtype='datetime64[ns, Australia/Sydney]', freq='N') The numpy array (date part).. [datetime.date(2021, 10, 20) datetime.date(2021, 10, 20) datetime.date(2021, 10, 20)] The numpy array (time part).. [datetime.time(2, 30, 50) datetime.time(2, 30, 50) datetime.time(2, 30, 50)]
まとめ
PandasのDatetimeIndex.timeプロパティを使えば、タイムスタンプから時刻部分だけを簡単に抽出し、datetime.timeオブジェクトのNumPy配列として取得できます。同様に.dateプロパティを使えば日付部分のみの抽出も可能です。時刻データの分析や加工において非常に便利な機能なので、ぜひ活用してください。
-
PythonでNumPy配列を逆順に反転させる方法【numpy.flip()の使い方】
はじめに この記事では、NumPy配列を逆順(反転)にするシンプルなPythonプログラムを紹介します。配列の反転には、NumPyが標準で提供しているnumpy.flip()関数を使用します。この関数は、指定した軸に沿って配列の要素の順序を簡単に反転できる便利な機能です。 アルゴリズム 処理の流れは以下の4ステップです。 ステップ1: numpyをインポートする。 ステップ2: numpy.array()を使ってNumPy配列を定義する。 ステップ3: numpy.flip()関数を使って配列を反転させる。 ステップ4: 結果の配列を出力する。 サンプルコード import numpy a
-
PythonでNumPyの2次元配列を1次元配列にフラット化する方法
2次元のNumPy配列とは、いわば「配列の配列」のことです。本記事では、2次元配列をフラット化して、すべての要素を1次元配列として取り出す方法を解説します。 flatten()を使う方法 NumPyのflatten()関数は、2次元配列を1次元配列へ変換する最も直接的な方法です。常に元の配列のコピーを返すため、フラット化した配列を変更しても元の配列には影響しません。 サンプルコード import numpy as np array2D = np.array([[31, 12, 43], [21, 9, 16], [0, 9, 0]]) # 元の配列を表示 print(元の配列:\n, ar