numpy.timedelta64変数から秒単位の時間差を取得するにはどうすればよいですか?
time1 = '2012-10-05 04:45:18'
time2 = '2012-10-05 04:44:13'
dt = np.datetime64(time1) - np.datetime64(time2)
print dt
0:01:05
dt
時間差を秒単位で表す数値(intまたはfloat)に変換したいと思います。
1.7 実験的な datetime APInumpy.timedelta64()
を使用してオブジェクトから秒数を取得するには:numpy
seconds = dt / np.timedelta64(1, 's')
「ラップされた」日時アイテムからアクセスできます。
>>> dt.item().total_seconds()
65.0
説明:これdt
は、の配列スカラーですnumpy
。これは、ゼロランク配列または0次元配列です。したがって、dt
ここにはndarrayが所有するすべてのメソッドもあり、たとえば、実行できますdt.astype('float')
。ただし、Pythonオブジェクト(この場合はオブジェクト)をラップしdatetime.timedelta
ます。
元のスカラーを取得するには、を使用できますdt.item()
。配列スカラーにインデックスを付けるには、空のタプルを使用してgetitemのやや奇妙な構文を使用できます。
>>> dt[()]
array(datetime.timedelta(0, 65), dtype='timedelta64[s]')
これはnumpyのすべてのバージョンで機能するはずですが、numpy v1.7 +を使用している場合は、ここのJF Sebastienの回答で説明されているように、新しいnumpydatetimeAPIを直接使用する方がよい場合があります。