bonjour Theo92,
pour la conversion de dates juliennes en grégorien, il te suffit de suivre à la lettre la description de l'algo du lien que je t'ai indiqué.
mais si tu veux, on garde ce point pour la fin.
toutefois, j'aimerais bien savoir à quoi ressemble le contenu de ton tableau de départ.
tu peux m'en montrer les premiers éléments ?
il est essentiel que je voie la 'structure' des éléments de ce tableau pour pouvoir les utiliser ensuite.
---
j'étais justement en train d'avancer le code sur ton exo.
comme dit sur ton autre topic, je ne maitrise pas tout en python (loin de là), mais avec des outils simples, on y arrive.
pour le moment, j'ai établi la liste des moyennes mensuelles, et celle des moyennes par mois.
j'allais m'attaquer aux graphiques...
perso, j'aime bien travailler avec les listes : les opérateurs et les méthodes existantes sur les listes offrent beaucoup de souplesse et de possibilités.
nb1 : on peut toujours faire plus compliqué ! et il existe peut-être plus simple pour ton exo.
nb2 : si tu maitrises, tu peux aussi utiliser les dictionnaires
pour te donner une idée, voici les étapes de ce que j'ai fait pour le moment;
après, tu adapteras comme tu le souhaites :
1) création de 2 fonctions (def) - une liste en argument :
une pour calculer la moyenne annuelle - en return : (année, moyenne)
l'autre pour la moyenne mensuelle - en return : (année, mois, moyenne)
2) à partir d'un np.arange('1990-12-12' , '2019-12-31' , dtype = 'datetime64[D]')
j'ai créé une liste de dates, de la forme
dates = [('1990', '12', 18), ('1990', '12', 17), ('1990', '12', 0), ..... ('2019', '12', 30 ]--- attention, le dernier jour n'est pas compris !
qui contient autant d'éléments (moins 1) que le tableau de départ (tous les jours, toutes les années),
et où chaque élément, pour chaque jour, est de la forme (année, mois, température) (évidemment, j'ai généré des temps en randint)
3) une boucle : tant que le fichier dates n'est pas vide :
a) je lis la 1ère année et je créée une liste par compréhension de tous les éléments relatifs à cette année : donc, j'extrais une partie de la liste dates
annee = [('1990', '12', 20), ('1990', '12', 10), ....('1990', '12', 14)] --- contient 20 éléments
b) calcul de la moyenne de l'année
c) autre boucle imbriquée : tant que annee n'est pas vide
- crée une liste par compréhension de tous les éléments relatifs au premier mois
- calcule la moyenne de ce mois
- on supprime le mois dans annee --- le premier élément de la liste annee sera donc du mois suivant...
d) je supprime annee dans dates ---- mm principe : le premier élément de la liste dates sera donc de l'année suivante...
à l'issue de ce code, j'ai les 2 listes prêtes à être exploitées pour les graphiques :
liste moyenne année [('1990', 9.95), ('1991', 10.72)...]
liste moyenne mois [('1990', '12', 9.95), ('1991', '01', 10.03), ('1991', '02', 11.25), ('1991', '03', 17.0)...]
ça a l'air long expliqué ainsi, mais le corps principal fait moins de 20 lignes de codes.
ça peut cadrer avec ce que l'on te demande ?
à noter : numpy est sans doute plus adapté (car plus rapide) avec des listes de cette taille.
mais, sauf erreur de ma part - je te laisse faire des recherches et me dire si tu trouves - , certaines méthodes n'ont pas d'équivalent avec numpy, sur les listes.
par exemple :
ma_liste = [1,2,3,4,5,6,7]
del ma_liste[0:5]
==> retourne : [6,7]