numpy.datetime64またはnumpy.datetime_からUNIX時間を取得するにはどうすればよいですか?
たとえば、次のようになります。
np.datetime_('2012-08-08 13:37:00')
numpy datetime64 には可変単位があります。
公式ドキュメントからの抜粋:
内部ストレージの単位は、文字列の形式から自動的に選択され、日付単位または時間単位のいずれかになります。日付の単位は年 ('Y')、月 ('M')、週 ('W')、日 ('D') で、時間の単位は時間 ('h')、分 ('m') です。 )、秒 ('s')、ミリ秒 ('ms')、およびいくつかの追加の SI プレフィックス秒ベースの単位。
したがって、最初に dtype を使用して現在のユニットを確認する必要があります。次に例を示します。
>>> now = np.datetime64(datetime.datetime.now())
>>> now.dtype
# for ns unit, use:
dtype('<M8[ns]')
now.astype('int64')/1e9, dtype='int32'
# for us unit, use:
dtype('<M8[us]')
now.astype('int64')/1e6, dtype='int32'
# for ms unit, use:
dtype('<M8[ms]')
now.astype('int64')/1e3, dtype='int32'
等々....
np.datetime64('now')
onnumpy1.6.1と1.7の値で一貫性のない結果が得られます。
これは両方で機能します:
>>> import datetime
>>> import numpy as np
>>> now = np.datetime64(datetime.datetime.now())
>>> (now.astype('uint64') / 1e6).astype('uint32')
1344447810
def get_unixtime(time):
return (time.astype(np.int64)/1e6).astype(np.int64)
get_unixtime(np.datetime64('now'))
UNIXタイムスタンプを返すようですが、確認したのはいくつかの日付だけです。