Скажем, у меня есть datetime
:
given_time = datetime(2013, 10, 8, 0, 0, 33, 945109,
tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=60,
name=None))
Я хотел бы преобразовать его в np.datetime64
:
np.datetime64(given_time)
> numpy.datetime64('2013-10-08T00:00:33.945109+0100')
Это хорошо работает. Однако, если у меня есть массив given_time
:
given_times = np.array([given_time]*3) # dtype is object
Оба given_times.astype('datetime64')
и given_times = np.array([given_time] * 3, dtype=np.datetime64)
запускают TypeError: Cannot cast datetime.datetime object from metadata [us] to [D] according to the rule 'same_kind'
Итак, я должен указать единицу:
given_times.astype('datetime64[us]')
# or
given_times = np.array([given_time]*3, dtype='datetime64[us]')
Мой вопрос: зачем мне здесь указывать блок? Он не требует единицы в конструкторе np.datatime64
.