You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.3 KiB
45 lines
1.3 KiB
%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)
|
|
|
|
|