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
>>> 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
raise StatisticsError('cdf() not defined when sigma is zero')
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'
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)