Python(NumPy)で日時の配列を時間単位の文字列配列に変換する方法
PythonのNumPyで日時(datetime)の配列を文字列の配列に変換するには、numpy.datetime_as_string()メソッドを使用します。このメソッドは、入力配列と同じ形状の文字列配列を返します。第1引数には、フォーマット対象となるUTCタイムスタンプの配列を渡します。また、「units」パラメータで日時の単位を指定することで、出力される文字列の精度を変更できます。本記事では「時間(h)」単位を指定した例を紹介します。
手順
まず、必要なライブラリをインポートします。
import numpy as np
次に、日時の配列を作成します。dtypeの「M」はdatetime64型を表し、ここでは分単位(m)の配列を生成しています。
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()メソッドを使って、日時の配列を文字列の配列に変換します。unitに「'h'」を指定すると、時間単位までの精度で文字列化されます。
print("\nResult...\n",np.datetime_as_string(arr, unit ='h'))完全なコード例
import numpy as np
# 日時の配列を作成
# dtypeの'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()メソッドで日時の配列を文字列の配列に変換
# 戻り値は入力配列と同じ形状の文字列配列
# 第1引数はフォーマット対象のUTCタイムスタンプの配列
# unitsパラメータで日時の単位を指定し、精度を変更できる
# ここでは時間(hours)単位を指定
print("\nResult...\n",np.datetime_as_string(arr, unit ='h'))実行結果
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' '2022-02-20T03' '2022-02-20T04' '2022-02-20T05' '2022-02-20T06' '2022-02-20T07']
-
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