Skip to content

Commit b52da71

Browse files
Add in implemenation of standard deviation on data
1 parent c551738 commit b52da71

3 files changed

Lines changed: 23 additions & 2 deletions

File tree

inflammation-analysis.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ def main(args):
2121
for filename in InFiles:
2222
inflammation_data = models.load_csv(filename)
2323

24-
view_data = {'average': models.daily_mean(inflammation_data), 'max': models.daily_max(inflammation_data), 'min': models.daily_min(inflammation_data)}
24+
view_data = {'average': models.daily_mean(inflammation_data), 'max': models.daily_max(inflammation_data), 'min': models.daily_min(inflammation_data), **(models.s_dev(inflammation_data))}
25+
2526

2627
views.visualize(view_data)
2728

inflammation/models.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,14 @@ def daily_max(data):
3131
def daily_min(data):
3232
"""Calculate the daily min of a 2d inflammation data array."""
3333
return np.min(data, axis=0)
34+
35+
36+
def s_dev(data):
37+
"""Computes and returns standard deviation for data."""
38+
mmm = np.mean(data, axis=0)
39+
devs = []
40+
for entry in data:
41+
devs.append((entry - mmm) * (entry - mmm))
42+
43+
s_dev2 = sum(devs) / len(data)
44+
return {'standard deviation': s_dev2}

tests/test_models.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import numpy as np
44
import numpy.testing as npt
5-
5+
import pytest
66

77
def test_daily_mean_zeros():
88
"""Test that mean function works for an array of zeros."""
@@ -29,3 +29,12 @@ def test_daily_mean_integers():
2929
# Need to use Numpy testing functions to compare arrays
3030
npt.assert_array_equal(daily_mean(test_input), test_result)
3131

32+
@pytest.mark.parametrize('data, expected_standard_deviation', [
33+
([0, 0, 0], 0.0),
34+
([1.0, 1.0, 1.0], 0),
35+
([0.0, 2.0], 1.0)
36+
])
37+
def test_daily_standard_deviation(data, expected_standard_deviation):
38+
from inflammation.models import s_dev
39+
result_data = s_dev(data)['standard deviation']
40+
npt.assert_approx_equal(result_data, expected_standard_deviation)

0 commit comments

Comments
 (0)