Python
 Computer >> コンピューター >  >> プログラミング >> Python

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形式の表記になっているためです。

  1. Pythonで文字列をタプルに変換する方法

    Pythonで文字列をタプルに変換するには?Pythonの組み込み関数 tuple() を使うと、任意のシーケンスオブジェクトをタプルに変換できます。引数に文字列を渡した場合、各文字がそれぞれ独立した文字列要素として扱われ、カンマで区切られた形でタプルに格納されます。基本的な使用例>>> string = "Tutorialspoint">>> tuple(string)(T, u, t, o, r, i, a, l, s, p, o, i, n, t)このように、文字列「Tutorialspoint」は14個の文字要素を持つタプルへと変

  2. Pythonでテキストファイルをリストや配列として読み込む方法

    Pythonでテキストファイルを読み込んでデータとして扱う方法はいくつかあります。ここでは、代表的な手法をサンプルコード付きでわかりやすく解説します。 テキストファイル全体を一度に読み込む方法 最も基本的なのは、組み込み関数 open() を使う方法です。以下のコードでは、my_file.txt を読み取りモードで開き、ファイルの内容全体を変数 my_file_data に格納した後、ファイルを閉じています。 f = open(my_file.txt, r+) my_file_data = f.read() f.close() read() 関数は、ファイルの内容をすべて一括で読み取りま