>>> pop.get_mean()
5.2
>>> round(pop.get_stdev(), 1)
- 1.4
+ 3.1
>>> pop.get_percentile(20)
3
>>> pop.get_percentile(60)
for n in self.highers:
variance += (n - mean) ** 2
count = len(self.lowers) + len(self.highers)
- return math.sqrt(variance) / count
+ return math.sqrt(variance / count)
def _create_sorted_copy_if_needed(self, count: int):
"""Internal helper."""
return True
-if __name__ == '__main__':
+if __name__ == "__main__":
import doctest
doctest.testmod()
A Histogram helper class. Creates outputs like this::
- [4..5): ▏ ( 0.16% n=1)
- [5..6): ██▍ ( 0.64% n=4)
- [6..7): ██████▏ ( 1.60% n=10)
- [7..8): ████████████▍ ( 3.20% n=20)
- [8..9): █████████████████████▊ ( 5.60% n=35)
- [9..10): ████████████████████████████████▍ ( 8.32% n=52)
- [10..11): ██████████████████████████████████████████▍ (10.88% n=68)
- [11..12): █████████████████████████████████████████████████▉ (12.80% n=80)
- [12..13): ████████████████████████████████████████████████████▉ (13.60% n=85)
- [13..14): █████████████████████████████████████████████████▉ (12.80% n=80)
- [14..15): ██████████████████████████████████████████▍ (10.88% n=68)
- [15..16): ████████████████████████████████▍ ( 8.32% n=52)
- [16..17): █████████████████████▊ ( 5.60% n=35)
- [17..18): ████████████▍ ( 3.20% n=20)
- [18..19): ██████▏ ( 1.60% n=10)
- [19..20): ██▍ ( 0.64% n=4)
- [20..21): ▏ ( 0.16% n=1)
+ [5..6): ▏ ( 0.10% n=1)
+ [6..7): █▋ ( 0.49% n=5)
+ [7..8): █████▏ ( 1.46% n=15)
+ [8..9): ███████████▉ ( 3.42% n=35)
+ [9..10): ██████████████████████▏ ( 6.35% n=65)
+ [10..11): ██████████████████████████████████▌ ( 9.86% n=101)
+ [11..12): ██████████████████████████████████████████████▏ (13.18% n=135)
+ [12..13): ████████████████████████████████████████████████████▉ (15.14% n=155)
+ [13..14): ████████████████████████████████████████████████████▉ (15.14% n=155)
+ [14..15): ██████████████████████████████████████████████▏ (13.18% n=135)
+ [15..16): ██████████████████████████████████▌ ( 9.86% n=101)
+ [16..17): ██████████████████████▏ ( 6.35% n=65)
+ [17..18): ███████████▉ ( 3.42% n=35)
+ [18..19): █████▏ ( 1.46% n=15)
+ [19..20): █▋ ( 0.49% n=5)
+ [20..21): ▏ ( 0.10% n=1)
--------------------------------------------------------------------------------
- [4..21): pop(Σn)=625
- mean(μ)=12.000
+ [5..21): pop(Σn)=1024
+ mean(μ)=12.500
median(p50)=12.000
mode(Mo)=12.000
- stdev(σ)=0.113
-
+ stdev(σ)=2.500
"""
import math