Browse Source

update python

master
sacha.serny 3 years ago
parent
commit
38eb458555
  1. 41
      py_main.py

41
py_main.py

@ -20,7 +20,8 @@ def estBissextile(a):
return (a%4==0 and a%100!=0) or a%400==0
def distance (pos1, pos2):
"""Fonction distance qui prend en paramètre 2 tuples (Numéro du jour, Température moyenne, température de référence) et qui renvoie un nombre réel représentant la distance euclidienne"""
"""fonction distance qui prend en paramètre 2 tuples (Numéro du jour, Température moyenne, température de référence) et qui renvoie un nombre réel représentant la distance euclidienne"""
x1, y1, z1 = pos1
x2, y2, z2 = pos2
diff_njour1, diff_njour2 = x1-x2, x2-x1
@ -28,20 +29,22 @@ def distance (pos1, pos2):
diff = x1-x2
else:
diff = x2-x1
return ((diff)**2)+((y1-y2)**2)+((z1-z2)**2)
return np.sqrt((diff)**2)+((y1-y2)**2)+((z1-z2)**2)
def kPlusProches(echantillon, donnees, k):
""" à reprendre : CHAOS """
""" à reprendre -> !! TOTAL CHAOS !! U_u 0w0 *_* """
voisins = []
for i in range(len(donnees)):
date, t_moy, t_ref = donnees[i]
date, t_moy, t_ref, conso = donnees[i]
d = distance(echantillon, (date, t_moy, t_ref))
voisins.append((d, i))
voisins = sorted(voisins)
return [voisins[i][1] for i in range(k)]
def numeroJour(date):
"""Donne le numéro du jour dans l'année de la date "2442-04-24" """
"""renvoie le numéro du jour dans l'année de la date "2442-04-24" """
date = date.split('-')
a, m, j = date
a, m, j = int(a), int(m), int(j)
@ -49,17 +52,22 @@ def numeroJour(date):
mois = (0,31,60,91,121,152,182,213,244,274,305,335,366)
else:
mois = (0,31,59,90,120,151,181,212,243,273,304,334,365)
return mois[m-1] + j
return int(mois[m-1] + j)
def PuissanceMoyenne(consos, i_voisins):
"""renvoie la puissance moyenne, prend en entrée une liste triée en fonction de la distance"""
res = 0
for el in i_voisins:
res += consos[i_voisins]
res += consos[el]
return res/(len(i_voisins))
def triAvecIndices(lst):
"""J'sais même pas ce que je fais"""
tab_i= []
tab = []
for i in range(len(lst)):
@ -68,10 +76,19 @@ def triAvecIndices(lst):
return tab
num_jour = []
dates, consos, t_moys, t_refs = lecture("pic-journalier-consommation.csv")
dates, consos, t_pics, t_refs = lecture("pic-journalier-consommation.csv")
for date in dates:
num_jour.append(numeroJour(date))
coords = list(zip(num_jour, t_moys, t_refs))
print(coords)
print(kPlusProches((80, 14, 9), coords, 4))
print(PuissanceMoyenne(consos, kPlusProches((80, 14, 9), coords, 4)))
coords = list(zip(num_jour, t_pics, t_refs, consos))
#print(kPlusProches((80, 14, 9), coords, 20)
print(PuissanceMoyenne(consos, kPlusProches((numeroJour("2011-06-24"), 15, 20), coords, 20)))
#application du jeu de test
tab = []
test_dates, test_consos, test_pic, test_ref = lecture("jeuTests.csv")
for i in range (len(test_dates)):
tab.append(PuissanceMoyenne(consos, kPlusProches((numeroJour(test_dates[i]), test_pic[i], test_ref[i]), coords, 20)))
print(tab)

Loading…
Cancel
Save