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

Python(NumPy)で日時の配列を文字列の配列に変換する方法

日時(datetime)の配列を文字列の配列へ変換したい場合、PythonのNumPyが提供する numpy.datetime_as_string() メソッドが便利です。このメソッドは、入力された配列と同じ形状の文字列配列を返します。第1引数には、フォーマット対象となるUTCタイムスタンプの配列を指定します。

変換の手順

まず、必要なライブラリをインポートします。

import numpy as np

続いて、datetime型の配列を作成します。dtypeに指定する「M」はdatetime64型を表し、「M8[m]」の場合は分(minute)単位の精度を持つ日時データになります。

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)

配列の形状(shape)を確認します。

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))

サンプルコード全体

import numpy as np

# datetime型の配列を作成(「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)

# datetime_as_string()で日時の配列を文字列の配列に変換
# 入力配列と同じ形状の文字列配列が返る
print("\nResult...\n",np.datetime_as_string(arr))

実行結果

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']

補足:unit引数で出力精度を変更する

numpy.datetime_as_string() には unit 引数を指定でき、出力される文字列の精度を細かく制御できます。たとえば unit='s' とすれば秒単位まで、unit='D' とすれば日付単位で表示されます。また、timezone 引数にタイムゾーンを渡すことで、UTC以外の時刻への変換にも対応しています。用途に応じて使い分けると、ログ出力やCSV書き出しなどの場面でより扱いやすい文字列を得られます。

  1. Pythonでリストをリストのリスト(ネストされたリスト)に変換する3つの方法

    データ分析では、リストの各要素を個別のサブリストに変換したいという場面によく遭遇します。本記事では、通常のリストを入力として受け取り、各要素がサブリストとなる「リストのリスト」へ変換する方法を、3つの異なるアプローチとともにわかりやすく解説します。1. forループ(リスト内包表記)を使う方法最もシンプルで直感的な方法です。リスト内包表記を使えば、各要素を1行ずつ読み取りながら、それぞれをリストとして新しいリストに格納できます。コードも短く、可読性も高いのが特徴です。コード例Alist = [Mon,Tue,Wed,Thu,Fri] # 元のリスト print(Given list: ,Al

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

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