97 lines
3.3 KiB
Python
97 lines
3.3 KiB
Python
# 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))
|