Python Projects: Perform some simple statistics on a list of values
Python Project-11 with Solution
Create a Python project to perform some simple statistics on a list of values.
Sample Solution:
Python Code:
main.py
#Source: https://bit.ly/3eJPW8E
import stats
lst = [6, 6, 10, 15 , 9 , 8, 17, 5]
Stats = stats.Stats
print("Average\t", Stats.average(lst))
print("MD\t", Stats.meanDeviation(lst))
print("Count 7\t", Stats.count(lst, 7))
print("Length\t", Stats.length(lst))
print("Max\t", Stats.max(lst))
print("Min\t", Stats.min(lst))
print("Range\t", Stats.range(lst))
print("Sum\t", Stats.sum(lst))
print("Sort\t", Stats.sort(lst))
print("Variance", Stats.variance(lst))
print("SD\t", Stats.standardDeviation(lst))
print("Median\t", Stats.median(lst))
Flowchart:
stats.py
class Stats():
"""
Stats class for performing some simple statistics on a list of values.
"""
def __init__(self):
"""
Constructor method.
"""
pass
@staticmethod
def average(lst):
"""
Computes the average.
"""
return __class__.sum(lst) / __class__.length(lst)
@staticmethod
def meanDeviation(lst):
"""
Computes the mean deviation.
Mean Deviation is average of distance of each value from that mean(average).
"""
average = __class__.average(lst)
mean_deviation = 0
for v in lst:
mean_deviation += abs(average - v)
return mean_deviation / __class__.length(lst)
@staticmethod
def count(lst, value):
"""
Counts the occurrence of a value in a list of values.
"""
return lst.count(value)
@staticmethod
def variance(lst):
"""
Computes the variance.
Variance is useful to see how the list of values varied against the average.
"""
average = __class__.average(lst)
variance = 0
for v in lst:
variance += ((average - v) ** 2)
return variance / __class__.length(lst)
@staticmethod
def standardDeviation(lst):
"""
Computes the standard deviation.
Standard Deviation is useful to give an idea about range of normal values(i.e. location of most of values).
"""
return __class__.variance(lst) ** 0.5
@staticmethod
def median(lst):
"""
Computes the median.
Median is the middle value in a sorted list of values.
"""
lst = __class__.sort(lst)
length = __class__.length(lst)
mid = int(length / 2)
if length % 2 == 0:
return (lst[mid] + lst[mid - 1]) / 2
return lst[mid]
@staticmethod
def max(lst):
"""
Returns the max value.
"""
return max(lst)
@staticmethod
def min(lst):
"""
Returns the min value.
"""
return min(lst)
@staticmethod
def range(lst):
"""
Returns the difference between max and min values.
"""
return __class__.max(lst) - __class__.min(lst)
@staticmethod
def sum(lst):
"""
Returns summation of all values in a list.
"""
return sum(lst)
@staticmethod
def length(lst):
"""
Returns the length of list.
"""
return len(lst)
@staticmethod
def sort(lst):
"""
Sorts the list.
"""
return sorted(lst)
Output:
Average 9.5 MD 3.375 Count 7 0 Length 8 Max 17 Min 5 Range 12 Sum 76 Sort [5, 6, 6, 8, 9, 10, 15, 17] Variance 16.75 SD 4.092676385936225 Median 8.5
Flowchart:
Contribute your code and comments through Disqus.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://198.211.115.131/projects/python/python-projects-11.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics