1
votes

Convertir un tableau numpy plein de deltas de temps en heures

J'ai un tableau plein de timedeltas que je veux pouvoir les convertir en heures.

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)])

Quelqu'un sait-il comment je peux convertir ce tableau en heures alors array [(8, 8.56 etc.

J'ai essayé tout ce que je sais faire. Je suis nouveau à python. Merci


0 commentaires

3 Réponses :


2
votes

Convertissez en timedelta64 [m] dtype, puis allez à partir de là:

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])


0 commentaires

0
votes

Vous pouvez diviser le nombre total de secondes de chaque chronomètre par 3600 pour obtenir le résultat souhaité.

new = np.array([delta.total_seconds() / 3600 for delta in times_array])


0 commentaires

0
votes

Essayez ceci.

from datetime import datetime,timedelta
print(datetime.strptime(str(timedelta(seconds=30600)),'%H:%M:%S').strftime('%H.%M'))

08.30


0 commentaires