%matplotlib inline import numpy as np import matplotlib.pyplot as plt def lecture(name): lst_date = [] lst_conso = [] lst_t_moy = [] lst_t_ref = [] with open(name) as fic: fic.readline() for ligne in fic: date,conso, t_moy, t_ref = ligne.split(';') lst_date.append(date) lst_conso.append(float(conso)) lst_t_moy.append(float(t_moy)) lst_t_ref.append(float(t_ref)) return(np.array(lst_date), np.array(lst_conso), np.array(lst_t_moy), np.array(lst_t_ref)) def numero_jour (date): return date.split("-")[2] def distance (pos1, pos2): x1, y1, z1 = pos1 x2, y2, z2 = pos2 return np.sqrt(((x1-x2)**2)+((y1-y2)**2)+((z1-z2)**2)) def kPlusProches(echantillon, donnees, k): voisins = [] for i in range(len(donnees)): date, conso, t_moy = donnees[i] print(donnees[i]) d = distance(echantillon, (date, conso, t_moy)) voisins.append((d, i)) return [voisins[i][1] for i in range(k)] num_jour = [] dates, consos, t_moys, t_refs = lecture("pic-journalier-consommation.csv") for date in dates: num_jour.append(numero_jour(date)) coords = list(zip(num_jour, t_moys, t_refs)) kPlusProches((13, 21.0, 20.6), coords, 4)