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

【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書き出しなどの用途に合わせて柔軟に文字列形式へ変換できます。

  1. PythonでDateTime文字列をミリ秒単位の整数に変換する方法を徹底解説

    Pythonでは、timeモジュールを使うことで、現在時刻をミリ秒単位の整数として簡単に取得できます。基本的な考え方は、まず time.time() 関数で秒単位の時刻(浮動小数点数)を取得し、それに1000を掛けて四捨五入することでミリ秒に変換するというものです。現在時刻をミリ秒で取得する方法以下のサンプルコードでは、現在のUNIXタイムスタンプをミリ秒単位の整数として取得しています。import time milliseconds = int(round(time.time() * 1000)) print(milliseconds)実行結果このコードを実行すると、次のような出力が得られま

  2. 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