Python・NumPyでpytzタイムゾーンを使って日時の配列を文字列の配列に変換する方法
PythonのNumPyで日時(datetime)の配列を文字列の配列に変換するには、numpy.datetime_as_string() メソッドを使用します。このメソッドは、入力配列と同じ形状の文字列配列を返します。第1引数には、フォーマット対象となるUTCタイムスタンプの配列を指定します。
第2引数は「timezone」で、日時を表示する際に使用するタイムゾーン情報を指定します。'UTC' を指定した場合は末尾にZが付加されUTC時間であることを示し、'local' を指定した場合はまずローカルタイムゾーンに変換された上で、±#### 形式のタイムゾーンオフセットが接尾辞として付きます。tzinfoオブジェクトを指定した場合は 'local' と同様の処理が行われますが、その際には指定されたタイムゾーンが使用されます。
手順
まず、必要なライブラリをインポートします。pytzのタイムゾーンを使用するため、「pytz」ライブラリもインポートしておきます。
import numpy as np import pytz
次に、日時の配列を作成します。データ型「M」はdatetime型を表します。
arr = np.arange('2022-02-20T03:25', 6*60, 60, dtype='M8[m]')作成した配列を表示します。
print("Array...\n",arr)配列のデータ型を確認します。
print("\nArray datatype...\n",arr.dtype)
配列の次元数を取得します。
print("\nArray Dimensions...\n",arr.ndim)配列の形状を取得します。
print("\nOur Array Shape...\n",arr.shape)配列の要素数を取得します。
print("\nNumber of elements in the Array...\n",arr.size)日時の配列を文字列の配列に変換するには、numpy.datetime_as_string() メソッドを使用します。このメソッドは、入力配列と同じ形状の文字列配列を返します。
print("\nResult...\n",np.datetime_as_string(arr, timezone=pytz.timezone('US/Eastern')))
完全なサンプルコード
import numpy as np
import pytz
# 日時の配列を作成
# データ型「M」はdatetime型を表す
arr = np.arange('2022-02-20T03:25', 6*60, 60, dtype='M8[m]')
# 配列を表示
print("Array...\n",arr)
# データ型を取得
print("\nArray datatype...\n",arr.dtype)
# 配列の次元数を取得
print("\nArray Dimensions...\n",arr.ndim)
# 配列の形状を取得
print("\nOur Array Shape...\n",arr.shape)
# 配列の要素数を取得
print("\nNumber of elements in the Array...\n",arr.size)
# Python NumPyのnumpy.datetime_as_string()メソッドを使用して、
# 日時の配列を文字列の配列に変換する
# このメソッドは、入力配列と同じ形状の文字列配列を返す
print("\nResult...\n",np.datetime_as_string(arr, timezone=pytz.timezone('US/Eastern')))実行結果
Array... ['2022-02-20T03:25' '2022-02-20T04:25' '2022-02-20T05:25' '2022-02-20T06:25' '2022-02-20T07:25' '2022-02-20T08:25'] Array datatype... datetime64[m] Array Dimensions... 1 Our Array Shape... (6,) Number of elements in the Array... 6 Result... ['2022-02-19T22:25-0500' '2022-02-19T23:25-0500' '2022-02-20T00:25-0500' '2022-02-20T01:25-0500' '2022-02-20T02:25-0500' '2022-02-20T03:25-0500']
実行結果を見ると、タイムゾーンとして US/Eastern(アメリカ東部標準時、UTC-5)を指定したため、元のUTCの日時から5時間遅れた時刻に変換され、各文字列の末尾に「-0500」というオフセットが付加されていることがわかります。このように、pytzのタイムゾーンオブジェクトを渡すだけで、任意の地域の時刻表記へ簡単に変換できます。
-
JSONデータをPythonオブジェクトに変換する方法【json.loads()の使い方】
Pythonでは、jsonモジュールをインポートし、json.loads()メソッドを使うことで、JSON形式の文字列をPythonのオブジェクト(辞書型)に簡単に変換できます。本記事では、実際のコード例とその実行結果をもとに、変換の手順をわかりやすく解説します。 JSON文字列を辞書に変換するサンプルコード 以下のコードは、JSON形式の文字列をPythonの辞書オブジェクトに変換する例です。json.loads()メソッドにJSON文字列を渡すだけで、自動的に辞書型へとパースされます。 import json json_string = {name: Sonali, age: 21,
-
PythonオブジェクトをJSONオブジェクトに変換する方法をわかりやすく解説
Pythonでデータを扱う際、オブジェクトをJSON形式に変換したい場面はよくあります。例えば、Web APIとの通信や設定ファイルの保存などがその代表例です。json.dumps()メソッドを使った基本的な変換方法Pythonには標準ライブラリとしてjsonモジュールが用意されており、これをインポートするだけで簡単に変換処理が行えます。オブジェクトをJSON形式の文字列に変換するには、json.dumps()メソッドを使用します。以下は、リストオブジェクト a = [1, 2, 3] をJSONオブジェクトに変換する具体例です。>>> a = [1, 2, 3] >&