Python NumPyで日時(datetime)配列をUTCタイムゾーン付きの文字列配列に変換する方法
PythonのNumPyで日時(datetime)の配列を文字列の配列に変換するには、numpy.datetime_as_string() メソッドを使用します。このメソッドは、入力配列と同じ形状の文字列配列を返します。
第1引数にはフォーマット対象となるUTCタイムスタンプの配列を指定します。第2引数は「timezone」で、日時を表示する際に使用するタイムゾーン情報です。'UTC' を指定すると、UTC時間であることを示すために末尾に「Z」が付加されます。
変換の手順
まず、必要なライブラリをインポートします。
import numpy as np
次に、日時の配列を作成します。dtype の「M」型は日時(datetime64)を表します。
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)
配列の形状(shape)を取得します。
print("\nOur Array Shape...\n",arr.shape)
配列の要素数を取得します。
print("\nNumber of elements in the Array...\n",arr.size)
timezoneパラメータについて
numpy.datetime_as_string() メソッドの第2引数「timezone」には、以下の値を指定できます。
- 'UTC':UTC時間を示すため、末尾に「Z」が付加されます。
- 'local':まずローカルタイムゾーンに変換され、「+0900」のような ±#### 形式のタイムゾーンオフセットが末尾に付加されます。
- tzinfoオブジェクト:'local' と同様の処理が行われますが、指定されたタイムゾーンが使用されます。
ここでは 'UTC' を指定して、日時の配列を文字列の配列に変換します。
print("\nResult...\n",np.datetime_as_string(arr, timezone = 'UTC'))
完全なサンプルコード
import numpy as np
# 日時の配列を作成
# dtypeの'M'型は日時(datetime64)を指定
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 = 'UTC'))
実行結果
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-20T03:25Z' '2022-02-20T04:25Z' '2022-02-20T05:25Z' '2022-02-20T06:25Z' '2022-02-20T07:25Z' '2022-02-20T08:25Z']
実行結果を見ると、各要素の末尾に「Z」が付加された文字列配列が出力されていることがわかります。これは、timezone='UTC' を指定したことで、UTC時間であることを示すISO 8601形式の表記になっているためです。
-
Pythonで文字列をタプルに変換する方法
Pythonで文字列をタプルに変換するには?Pythonの組み込み関数 tuple() を使うと、任意のシーケンスオブジェクトをタプルに変換できます。引数に文字列を渡した場合、各文字がそれぞれ独立した文字列要素として扱われ、カンマで区切られた形でタプルに格納されます。基本的な使用例>>> string = "Tutorialspoint">>> tuple(string)(T, u, t, o, r, i, a, l, s, p, o, i, n, t)このように、文字列「Tutorialspoint」は14個の文字要素を持つタプルへと変
-
Pythonでテキストファイルをリストや配列として読み込む方法
Pythonでテキストファイルを読み込んでデータとして扱う方法はいくつかあります。ここでは、代表的な手法をサンプルコード付きでわかりやすく解説します。 テキストファイル全体を一度に読み込む方法 最も基本的なのは、組み込み関数 open() を使う方法です。以下のコードでは、my_file.txt を読み取りモードで開き、ファイルの内容全体を変数 my_file_data に格納した後、ファイルを閉じています。 f = open(my_file.txt, r+) my_file_data = f.read() f.close() read() 関数は、ファイルの内容をすべて一括で読み取りま