21

numpy.datetime64またはnumpy.datetime_からUNIX時間を取得するにはどうすればよいですか?

たとえば、次のようになります。

np.datetime_('2012-08-08 13:37:00')
4

7 に答える 7

8

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'

等々....

于 2016-03-27T17:11:11.540 に答える
6

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
于 2012-08-08T15:10:11.490 に答える
-1
def get_unixtime(time):    
    return (time.astype(np.int64)/1e6).astype(np.int64)
get_unixtime(np.datetime64('now'))

UNIXタイムスタンプを返すようですが、確認したのはいくつかの日付だけです。

于 2012-08-08T13:21:09.953 に答える