można uzyskać do niego dostęp za pośrednictwem "owinięty" elementu datetime:
>>> dt.item().total_seconds()
65.0
Objaśnienie: tutaj dt
jest array scalar w numpy
, który jest tablicą lub zerowy stopień tablica 0-wymiarowej. Więc znajdziesz dt
tutaj również ma wszystkie metody, które posiada ndarray, i możesz zrobić na przykład dt.astype('float')
. Ale zawija obiekt Pythona, w tym przypadku obiekt datetime.timedelta
.
Aby uzyskać oryginalny skalar, można użyć dt.item()
. Do indeksu skalar tablicy można użyć nieco dziwacznej składni GetItem użyciu pustego krotki:
>>> dt[()]
array(datetime.timedelta(0, 65), dtype='timedelta64[s]')
to powinno działać we wszystkich wersjach numpy, ale jeśli używasz numpy v1.7 + może być lepiej użyj nowszego numpy datetime API bezpośrednio, jak wyjaśniono w odpowiedzi z J.F. Sebastien tutaj.
Dzięki, że pracował. Czy możesz wyjaśnić, dlaczego dt.seconds nie działa? – sashkello
To 'datetime.timedelta' ma atrybut o takiej nazwie, a nie' numpy.timedelta64'. Nie wiem, dlaczego numpy to zaimplementował, może ktoś inny może odpowiedzieć .. – wim