# deze functies zijn overgenomen van practicum_3_statistiek_student.py, geimplementeerd door Taha def mean(lst): """ Retourneer het gemiddelde (float) van de lijst lst. """ return float(sum(lst) / len(lst)) # totaal waarde van lijst - aantal waardes in lijst in float returnen def rnge(lst): """ Retourneer het bereik (int) van de lijst lst. """ lst.sort() # sorteer lijst return int(lst[-1] - lst[0]) # hoogste waarde - laagste waarde in int returnen def median(lst): """ Retourneer de mediaan (float) van de lijst lst. """ lst.sort() # sorteer lijst p = len(lst) # lengte lijst opvragen if p % 2: # als lengte van lijst oneven is return float(lst[p // 2]) # return middelste waarde in gesorteerde lijst als float else: # lijst heeft 2 waardes in het midden return float(sum(lst[p // 2 - 1:p // 2 + 1]) / 2) # return het gemiddelde van de middelste 2 waardes als float def var(lst): """ Retourneer de variantie (float) van de lijst lst. """ t = [] # tijdelijke lijst aanmaken m = mean(lst) # mean van de lijst opslaan for i in lst: # voor elke entry in lijst t.append((i - m) ** 2) # kwadraat van i - mean opslaan in tijdelijke lijst return float(sum(t) / len(lst)) # float van totaal waarde lijst - lengte lijst returnen def std(lst): """ Retourneer de standaardafwijking (float) van de lijst lst. """ return float(var(lst) ** 0.5) # wortel trekken van variatie def freq(lst): """ Retourneer een dictionary met als keys de waardes die voorkomen in lst en als value het aantal voorkomens van die waarde. """ t = {} # lege dict aanmaken for i in lst: # voor elk cijfer in lijst if i in t: # als cijfer in dict bestaat t[i] = t[i] + 1 # +1 doen op de huidige aantal in dict else: # cijfer bestaat niet in dict t[i] = 1 # voeg cijfer toe met waarde 1 return t # return de dict def modes(lst): """ Retourneer een gesorteerde lijst (list) van de modi van lijst lst. """ m = [] # lijst aanmaken om de values op te slaan r = [] # lijst maken om de keys op te slaan(de waardes die we gaan retourneren) f = freq(lst) # een frequentie dict maken for x in f: # voor elke key in de dict m.append(f[x]) # de waarde opslaan in de lijst m maximum_v = max(m) # pak de hoogste waarde in de lijst met waardes for x in f: # voor elke key in de dict if f[x] == maximum_v: # als de waarde van de dict overeenkomt met de maximum berekende waarde r.append(x) # de key opslaan in de resultaten lijst return sorted(r) # geef de r lijst terug gesorteerd ######################################## # stats genereren # ######################################## def popgenre(data_tpl): genres = [] for x in data_tpl: # voor elke "game" lst_genres = x[9].split(';') # genres opsplitten door de semicolons for y in lst_genres: # voor elke genre in game genres.append(y) # toevoegen genre in lijst genres return modes(genres)[0] # eerst populairste genre terug geven op basis van gegevens van modes(), wat is de kans # dat er meerdere genres tegelijk populair zijn, toch? def median_prijs(data_tpl): prijzen = [] for x in data_tpl: prijzen.append(x[17]) return float(median(prijzen))