Hi guys!
I just created my first portfolio project with ChatGPT! Check it out and if you have any suggestions to enhance this code, I will happily receive it!
class StatsCalculator:
@staticmethod
def calculate_average(data: list[float]) -> float:
if not data:
raise ValueError("Input data is empty")
data_sum = sum(data)
return data_sum / len(data)
@staticmethod
def calculate_variance(data: list[float]) -> float:
if not data:
raise ValueError("Input data is empty")
mean = StatsCalculator.calculate_average(data)
squared_diffs = [(xi - mean) ** 2 for xi in data]
variance = sum(squared_diffs) / len(data)
return variance
@staticmethod
def calculate_standard_deviation(data: list[float]) -> float:
if not data:
raise ValueError("Input data is empty")
variance = StatsCalculator.calculate_variance(data)
std_deviation = variance ** 0.5
return std_deviation
@staticmethod
def calculate_median(data: list[float]) -> float:
if not data:
raise ValueError("Input data is empty")
sorted_data = sorted(data)
n = len(sorted_data)
middle = n // 2
if n % 2 == 0:
middle1, middle2 = sorted_data[middle], sorted_data[middle - 1]
return (middle1 + middle2) / 2
else:
return sorted_data[middle]