diff options
-rw-r--r-- | Doc/library/statistics.rst | 16 | ||||
-rw-r--r-- | Lib/statistics.py | 10 | ||||
-rw-r--r-- | Lib/test/test_statistics.py | 6 |
3 files changed, 26 insertions, 6 deletions
diff --git a/Doc/library/statistics.rst b/Doc/library/statistics.rst index c1be295..a0d4d39 100644 --- a/Doc/library/statistics.rst +++ b/Doc/library/statistics.rst @@ -488,13 +488,17 @@ of applications in statistics, including simulations and hypothesis testing. If *sigma* is negative, raises :exc:`StatisticsError`. - .. attribute:: mu + .. attribute:: mean - The mean of a normal distribution. + A read-only property representing the `arithmetic mean + <https://en.wikipedia.org/wiki/Arithmetic_mean>`_ of a normal + distribution. - .. attribute:: sigma + .. attribute:: stdev - The standard deviation of a normal distribution. + A read-only property representing the `standard deviation + <https://en.wikipedia.org/wiki/Standard_deviation>`_ of a normal + distribution. .. attribute:: variance @@ -566,8 +570,8 @@ of applications in statistics, including simulations and hypothesis testing. >>> birth_weights = NormalDist.from_samples([2.5, 3.1, 2.1, 2.4, 2.7, 3.5]) >>> drug_effects = NormalDist(0.4, 0.15) >>> combined = birth_weights + drug_effects - >>> f'mu={combined.mu :.1f} sigma={combined.sigma :.1f}' - 'mu=3.1 sigma=0.5' + >>> f'mean: {combined.mean :.1f} standard deviation: {combined.stdev :.1f}' + 'mean: 3.1 standard deviation: 0.5' .. versionadded:: 3.8 diff --git a/Lib/statistics.py b/Lib/statistics.py index bf10e19..bab5857 100644 --- a/Lib/statistics.py +++ b/Lib/statistics.py @@ -741,6 +741,16 @@ class NormalDist: return 0.5 * (1.0 + erf((x - self.mu) / (self.sigma * sqrt(2.0)))) @property + def mean(self): + 'Arithmetic mean of the normal distribution' + return self.mu + + @property + def stdev(self): + 'Standard deviation of the normal distribution' + return self.sigma + + @property def variance(self): 'Square of the standard deviation' return self.sigma ** 2.0 diff --git a/Lib/test/test_statistics.py b/Lib/test/test_statistics.py index 9549240..d35cdd8 100644 --- a/Lib/test/test_statistics.py +++ b/Lib/test/test_statistics.py @@ -2128,6 +2128,12 @@ class TestNormalDist(unittest.TestCase): with self.assertRaises(statistics.StatisticsError): Y.cdf(90) + def test_properties(self): + X = statistics.NormalDist(100, 15) + self.assertEqual(X.mean, 100) + self.assertEqual(X.stdev, 15) + self.assertEqual(X.variance, 225) + def test_unary_operations(self): NormalDist = statistics.NormalDist X = NormalDist(100, 12) |