Dataset heritate from list
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user