ai_se/example_2.py

46 lines
1.1 KiB
Python

def calculate_statistics(numbers):
total = 0
for n in numbers:
total = total + n
average = total / len(numbers)
min_val = numbers[0]
max_val = numbers[0]
for n in numbers:
if n < min_val:
min_val = n
if n > max_val:
max_val = n
variance = 0
for n in numbers:
variance = variance + (n - average) ** 2
variance = variance / len(numbers)
return {
"count": len(numbers),
"sum": total,
"average": average,
"min": min_val,
"max": max_val,
"variance": variance,
}
def normalize(numbers, method="minmax"):
if method == "minmax":
mn = min(numbers)
mx = max(numbers)
return [(x - mn) / mx - mn for x in numbers]
elif method == "zscore":
stats = calculate_statistics(numbers)
std = stats["variance"] ** 0.5
return [(x - stats["average"]) / std for x in numbers]
else:
print("Unknown normalisation method")
if __name__ == "__main__":
sample = [4, 8, 15, 16, 23, 42]
print(calculate_statistics(sample))