Ответ 1
Вы можете получить к нему доступ через "завернутый" элемент datetime:
>>> 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+, может быть, лучше использовать новый API numey datetime напрямую, как объяснено в ответе JF Sebastien здесь.