Example #1
0
def mean(in_list):
    """
    Returns mean of given list
    :param in_list: list to calculate mean from
    :return: float rounded to 5 decimal places
    """
    return round(sum(in_list) / zcount.count(in_list), 5)
Example #2
0
 def zstddev(self):
     test_cases = [
         ([10, 12, 23, 23, 16, 23, 21, 16], 5.24),
         ([35, 5.2, 156, 1.111, 23, 0.1, 65], 55.84),
         ([9.14, 8.14, 8.74, 8.77, 9.26, 8.1, 6.13, 3.1, 9.13, 7.26, 4.74], 2.03)
     ]
     for list_in, expected in test_cases:
         with self.subTest(f"{list_in} -> {expected}"):
             self.assertEqual(expected, zcount.count(list_in))
Example #3
0
 def zstderr(self):
     test_cases = [
         ([21, 568, 48, 543, 21, 2., 23, 798, 8.1], 105.36),
         ([287, 54, 16, 65, 87, 49, 62], 34.04),
         ([7, 1, 6, 9, 88, 5, 2], 11.9)
     ]
     for list_in, expected in test_cases:
         with self.subTest(f"{list_in} -> {expected}"):
             self.assertEqual(expected, zcount.count(list_in))
Example #4
0
 def zvariance(self):
     test_cases = [
         ([8, 10, 13, 14, 17], 12.3),
         ([4.5, 7.1, 12.3, 17, 20], 42.3),
         ([0, 1], 0.5)
     ]
     for list_in, expected in test_cases:
         with self.subTest(f"{list_in} -> {expected}"):
             self.assertEqual(expected, zcount.count(list_in))
Example #5
0
 def test_zmedian(self):
     test_cases = [
         ([0], 0),
         ([123, 237, 58, 87, 57], 87),
         ([0, 1.31, 867, .76867, 23, 564, 234, 6575], 128.5)
     ]
     for list_in, expected in test_cases:
         with self.subTest(f"{list_in} -> {expected}"):
             self.assertEqual(expected, zcount.count(list_in))
Example #6
0
 def test_zmean(self):
     test_cases = [
         ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 5.5),
         ([10, 15.2, 32.12, 9, 41], 21.46),
         ([0], 0)
     ]
     for list_in, expected in test_cases:
         with self.subTest(f"{list_in} -> {expected}"):
             self.assertEqual(expected, zcount.count(list_in))
def stderr(in_list):
    """
    Calculates standard error of mean of given list
    :param in_list: list of values
    :return: float rounded to 5 decimal places
    """
    std_dev = zstddev.stddev(in_list)
    n = zcount.count(in_list)
    std_err = std_dev / sqrt(n)
    return round(std_err, 5)
Example #8
0
    def test_zmode(self):
        test_cases = [
            ([1, 4, 2, 9, 7, 8, 9, 3, 1, 123, 2.3, 2.3, 5, 2.3, 23, 2.3], 2.3),
            ([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 123], 1),
            ([-1, -1, -2, -3, -1, -3, -3, -3, -3], -3)

        ]
        for list_in, expected in test_cases:
            with self.subTest(f"{list_in} -> {expected}"):
                self.assertEqual(expected, zcount.count(list_in))
Example #9
0
 def test_zcount(self):
     test_cases = [
         ([], 0),
         ([1, 2, 3, 4, 5, 6], 6),
         ([1.1, 2.2, 3.3, 4.4, 5.5], 5),
         ([10, .2, 1032, 3, 75, 5.6], 6)
     ]
     for list_in, expected in test_cases:
         with self.subTest(f"{list_in} -> {expected}"):
             self.assertEqual(expected, zcount.count(list_in))
def variance(in_list):
    """
    Finds variance of given list
    :param in_list: list of values
    :return: float rounded to 5 decimal places
    """
    n = zcount.count(in_list)
    mean = zmean.mean(in_list)
    d = [(x - mean) ** 2 for x in in_list]
    v = sum(d) / (n - 1)
    return round(v, 5)
Example #11
0
def corr(l1, l2):
    """
    Calculates the correlation between two lists of values
    :param l1: list of values
    :param l2: list of values
    :return: float rounded to 5 decimal places
    """
    l1_sum = sum(l1)
    l2_sum = sum(l2)
    l1_times_l2_sum = sum([l1[i] * l2[i] for i in range(len(l1))])
    l1_sq_sum = sum([x**2 for x in l1])
    l2_sq_sum = sum([x**2 for x in l2])
    n = zcount.count(l1)
    corr_num = (n * l1_times_l2_sum) - (l1_sum * l2_sum)
    corr_den = sqrt(
        ((n * l1_sq_sum) - (l1_sum**2)) * ((n * l2_sq_sum) - (l2_sum**2)))
    corr = corr_num / corr_den
    return round(corr, 5)
Example #12
0
def csv_reader(file):
    reader = csv.DictReader(open(file))
    result = {}
    for row in reader:
        for column, value in row.items():
            result.setdefault(column, []).append(float(value))
    return result

test = csv_reader(dataOne)

x = [10.0, 8.0, 13.0, 9.0, 11.0, 14.0, 6.0, 4.0, 12.0, 7.0, 5.0]
y = [9.14, 8.14, 8.74, 8.77, 9.26, 8.1, 6.13, 3.1, 9.13, 7.26, 4.74]

print("Count")
print(zcount.count(x))
print("Mean")
print(zmean.mean(x))
print("Mode")
print(zmode.mode(x))
print("Median")
print(zmedian.median(x))
print("Variance")
print(zvariance.variance(x))
print("Standard Deviation")
print(zstderr.stdderr(x))
print("Standard Error")
print(zstddev.stddev(x))
print("Correlation")
print(zcorr.covariance(x, y))
 def test_count2(self):
     test_data = []
     self.assertEqual(len(test_data), zcount.count(test_data))
 def test_count1(self):
     test_data = [1, 2, 3, 4, 5, 6, 7]
     self.assertEqual(len(test_data), zcount.count(test_data))
 def test_count3(self):
     test_data = [1, 1, 1]
     self.assertEqual(len(test_data), zcount.count(test_data))
Example #16
0
from statzcw import csvReader, zcount, zmean, zmode, \
    zmedian, zvariance, zstddev, zstderr, zcorr

csv_files = ['dataZero.csv', 'dataOne.csv', 'dataTwo.csv', 'dataThree.csv']
for f in csv_files:
    print('----------------------')
    print('File: ', f)
    print('----------------------')
    data = csvReader.read_csv(f)
    x = data[0]
    y = data[1]

    # x list
    print('x list')
    print('------')
    print('Count X: ', zcount.count(x))
    print('Mean X: ', zmean.mean(x))
    print('Median X ', zmedian.median(x))
    print('Mode X: ', zmode.mode(x))
    print('Variance X: ', zvariance.variance(x))
    print('Standard Deviation X: ', zstddev.stddev(x))
    print('Standard Error X: ', zstderr.stderr(x))

    # y list
    print('-------')
    print('y list:')
    print('-------')
    print('Count Y: ', zcount.count(y))
    print('Mean Y: ', zmean.mean(y))
    print('Median Y ', zmedian.median(y))
    print('Mode Y: ', zmode.mode(y))