LINUX.ORG.RU

numpy.datetime64 обнулить время

 ,


0

1

как обнулить время в datetime64

t = numpy.datetime64('2021-03-04 17:18:19.20')
нужно получить datetime64('2021-03-04').

Можно конечно через datetime, но не хочу привелекать для этого целую библиотеку )))

>>> np.datetime64(t.astype(datetime.date).date())
numpy.datetime64('2021-03-04')

В смысле «целую библиотеку»? datetime это стандартный пакет, она и так у тебя есть.

Aswed ★★★★★
()

Вытащить отдельно год, месяц и дату

in_dance
()
Ответ на: комментарий от scientistpython

мне приплыло t из другого места в виде numpy.datetim64 и нужно его оставить в виде numpy.datetime64

А сразу про это написать нельзя было? Если твоя дата, до которой надо округлить в UTC, то приведя к timestamp просто t = floor(t / 86400) * 86400, если localtime - то учти таймзону.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

Спасибо!

Казалось бы, что вот такая штука (попонятнее что ли) должна сработать, но нет

np.datetime64('2021-01-01 10:11:12.1314') // np.timedelta64(1, 'D')
Traceback (most recent call last):

  File "<ipython-input-28-5556dd1db142>", line 1, in <module>
    np.datetime64('2021-01-01 10:11:12.1314') // np.timedelta64(1, 'D')

UFuncTypeError: ufunc 'floor_divide' cannot use operands with types dtype('<M8[us]') and dtype('<m8[D]')

scientistpython
() автор топика
Ответ на: комментарий от scientistpython

Только datetime64 надо к timestamp привести, чтобы эта арифметика работала. Или если datetime64 в микросекундах, например, то t = floor( t / 86400e6 ) * 86400e6

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от scientistpython

Вот так надо, если только и исключительно numpy:

( ( numpy.datetime64('2021-01-01 10:11:12.1314') - numpy.datetime64(0,'s') ) // numpy.timedelta64(86400,'s') ) * numpy.timedelta64(86400, 's') + numpy.datetime64(0,'s')

Ужос нах, но работает.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.