I have a numpy array full of timedeltas I want to be able to convert them to hours.
print(times_arr)
array([datetime.timedelta(seconds=28800),
datetime.timedelta(seconds=30600),
datetime.timedelta(seconds=23400),
datetime.timedelta(seconds=27000),
datetime.timedelta(seconds=23400),
datetime.timedelta(seconds=23400),
datetime.timedelta(seconds=30600),
datetime.timedelta(seconds=23400),
datetime.timedelta(seconds=27000),
datetime.timedelta(seconds=23400),
datetime.timedelta(seconds=30600),
datetime.timedelta(seconds=27000),
datetime.timedelta(seconds=23400),
datetime.timedelta(seconds=23400),
datetime.timedelta(seconds=30600),
datetime.timedelta(seconds=28800),
datetime.timedelta(seconds=23400)])
Does anyone know how I can convert this array to hours so array[(8, 8.56 etc..
I have tried everything I know how. I am new to python. Thanks
Convert to timedelta64[m] dtype, then go from there:
arr.astype('timedelta64[m]').astype(int) / 60
# array([8. , 8.5, 6.5, 7.5, 6.5, 6.5, 8.5, 6.5, 7.5, 6.5, 8.5, 7.5, 6.5,
# 6.5, 8.5, 8. , 6.5])
Use arr.astype('timedelta64[s]').astype("int64")/3600 instead of arr.astype('timedelta64[m]').astype(int) / 60 which will cause "loss" of seconds.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With