Dataset heritate from list
This commit is contained in:
parent
79f2fa3c9e
commit
33f49edc6e
@ -7,9 +7,9 @@
|
||||
#
|
||||
#
|
||||
|
||||
from math import sqrt, cos, ceil
|
||||
from math import sqrt, ceil
|
||||
|
||||
class Dataset():
|
||||
class Dataset(list):
|
||||
""" Classe réprésentant un série statistique avec rendu latex """
|
||||
|
||||
def __init__(self, data = [], data_name = "Valeurs"):
|
||||
@ -19,9 +19,9 @@ class Dataset():
|
||||
:param data: values of the data set
|
||||
:param data_name: name of the data set
|
||||
"""
|
||||
self.data = list(data)
|
||||
list.__init__(self, data)
|
||||
|
||||
self.data_name = data_name
|
||||
self_name = data_name
|
||||
|
||||
def add_data(self, data):
|
||||
"""Add datas to the data set
|
||||
@ -29,19 +29,16 @@ class Dataset():
|
||||
:param data: datas
|
||||
"""
|
||||
try:
|
||||
self.data += data
|
||||
self += data
|
||||
except TypeError:
|
||||
self.data += [data]
|
||||
self += [data]
|
||||
|
||||
def sort(self, *args, **kwrds):
|
||||
""" Apply sort to data """
|
||||
self.data.sort(*args, **kwrds)
|
||||
|
||||
def __len__(self):
|
||||
return len(self.data)
|
||||
self.sort(*args, **kwrds)
|
||||
|
||||
def sum(self):
|
||||
return sum(self.data)
|
||||
return sum(self)
|
||||
|
||||
def mean(self):
|
||||
return self.sum()/len(self)
|
||||
@ -49,10 +46,10 @@ class Dataset():
|
||||
def deviation(self):
|
||||
""" Compute the deviation (not normalized) """
|
||||
mean = self.mean()
|
||||
return sum([(x - mean)**2 for x in self.data])
|
||||
return sum([(x - mean)**2 for x in self])
|
||||
|
||||
def variance(self):
|
||||
return self.deviation()/len(self.data)
|
||||
return self.deviation()/len(self)
|
||||
|
||||
def sd(self):
|
||||
""" Compute the standard deviation """
|
||||
@ -64,7 +61,7 @@ class Dataset():
|
||||
|
||||
:return: (min, Q1, Me, Q3, Max)
|
||||
"""
|
||||
return (min(self.data) , self.quartile(1) , self.quartile(2) , self.quartile(3), max(self.data))
|
||||
return (min(self) , self.quartile(1) , self.quartile(2) , self.quartile(3), max(self))
|
||||
|
||||
def quartile(self, quartile = 1):
|
||||
"""
|
||||
@ -82,7 +79,7 @@ class Dataset():
|
||||
"""
|
||||
position = self.posi_quartile(quartile)[0]
|
||||
# À vérifier...
|
||||
return self.data[position]
|
||||
return self[position]
|
||||
|
||||
|
||||
def posi_quartile(self, quartile = 1):
|
||||
@ -215,7 +212,7 @@ On a ainsi $Q_{q} = {val_q}$
|
||||
"""
|
||||
d_per_line = len(self) // nbr_lines
|
||||
d_last_line = len(self) % d_per_line
|
||||
splited_data = [self.data[x:x+d_per_line] for x in range(0, len(self.data), d_per_line)]
|
||||
splited_data = [self[x:x+d_per_line] for x in range(0, len(self), d_per_line)]
|
||||
# On ajoute les éléments manquant pour la dernière line
|
||||
if d_last_line:
|
||||
splited_data[-1] += [' ']*(d_per_line - d_last_line)
|
||||
|
Loading…
Reference in New Issue
Block a user