【Python・NumPy】日時の配列を文字列の配列に変換する方法|datetime_as_string()で分単位を指定
PythonのNumPyでは、numpy.datetime_as_string()メソッドを使うことで、日時(datetime)の配列を簡単に文字列の配列へと変換できます。このメソッドは、入力された配列と同じ形状を持つ文字列配列を返します。第一引数にはフォーマット対象となるUTCタイムスタンプの配列を指定し、unitsパラメータで日時の単位を設定することで、出力される文字列の精度を細かく制御できます。
変換の手順
まず、必要なライブラリをインポートします。
import numpy as np
次に、日時の配列を作成します。データ型の「M」はdatetime64型(日時型)を意味します。ここでは、開始日時から1時間(60分)ごとの要素を6つ持つ配列を生成しています。
arr = np.arange('2022-02-20T02:10', 6*60, 60, dtype='M8[m]')
日時の配列を文字列の配列に変換するには、numpy.datetime_as_string()メソッドを使用します。unit='m'を指定することで、分単位の精度で文字列化されます。
print("\nResult...\n",np.datetime_as_string(arr, unit ='m'))
完全なコード例
import numpy as np
# 日時の配列を作成
# データ型「M」はdatetime64型(日時型)を指定
arr = np.arange('2022-02-20T02:10', 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, unit ='m'))
実行結果
Array... ['2022-02-20T02:10' '2022-02-20T03:10' '2022-02-20T04:10' '2022-02-20T05:10' '2022-02-20T06:10' '2022-02-20T07:10'] Array datatype... datetime64[m] Array Dimensions... 1 Our Array Shape... (6,) Number of elements in the Array... 6 Result... ['2022-02-20T02:10' '2022-02-20T03:10' '2022-02-20T04:10' '2022-02-20T05:10' '2022-02-20T06:10' '2022-02-20T07:10']
ポイント解説
- dtype='M8[m]':datetime64型を分(minute)単位で扱うことを示しています。「m」を「s」や「D」などに変更すれば、秒単位や日単位の日時も作成できます。
- unit='m':出力される文字列の精度を分単位に指定しています。unitを省略した場合は、配列自体が持つ単位がそのまま使用されます。
- 返り値の形状:変換後の文字列配列は、元の日時配列とまったく同じ形状(shape)になります。
このように、numpy.datetime_as_string()メソッドを活用すれば、日時データをログ出力やCSV書き出しなどの用途に合わせて柔軟に文字列形式へ変換できます。
-
PythonでDateTime文字列をミリ秒単位の整数に変換する方法を徹底解説
Pythonでは、timeモジュールを使うことで、現在時刻をミリ秒単位の整数として簡単に取得できます。基本的な考え方は、まず time.time() 関数で秒単位の時刻(浮動小数点数)を取得し、それに1000を掛けて四捨五入することでミリ秒に変換するというものです。現在時刻をミリ秒で取得する方法以下のサンプルコードでは、現在のUNIXタイムスタンプをミリ秒単位の整数として取得しています。import time milliseconds = int(round(time.time() * 1000)) print(milliseconds)実行結果このコードを実行すると、次のような出力が得られま
-
Pythonで日付(date)を日時(datetime)に変換する方法
Pythonでは、datetimeモジュールのcombine()メソッドを使うことで、日付(date)と時刻(time)を組み合わせて、新しいdatetimeオブジェクトを作成できます。timeオブジェクトが手元にない場合は、datetime.min.time()を使って最小の時刻(つまり深夜0時=真夜中)を表すtimeオブjectを取得できます。方法1:datetime.combine() を使う以下の例では、今日の日付と最小の時刻(0時0分0秒)を組み合わせて、datetimeオブジェクトを生成しています。from datetime import date from datetime im