StatKitLite 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ from .core import mean, median, mode, variance, stdev, summary
2
+
3
+ __all__ = ["mean", "median", "mode", "variance", "stdev", "summary"]
4
+ __version__ = "1.0.0"
statkitlite/core.py ADDED
@@ -0,0 +1,55 @@
1
+ from collections import Counter
2
+ from math import sqrt
3
+
4
+
5
+ def mean(values):
6
+ values = list(values)
7
+ if not values:
8
+ raise ValueError("mean requires at least one value")
9
+ return sum(values) / len(values)
10
+
11
+
12
+ def median(values):
13
+ values = sorted(values)
14
+ n = len(values)
15
+ if n == 0:
16
+ raise ValueError("median requires at least one value")
17
+ mid = n // 2
18
+ if n % 2:
19
+ return values[mid]
20
+ return (values[mid - 1] + values[mid]) / 2
21
+
22
+
23
+ def mode(values):
24
+ values = list(values)
25
+ if not values:
26
+ raise ValueError("mode requires at least one value")
27
+ counts = Counter(values)
28
+ top = max(counts.values())
29
+ return sorted(v for v, c in counts.items() if c == top)
30
+
31
+
32
+ def variance(values, sample=True):
33
+ values = list(values)
34
+ n = len(values)
35
+ if n < 2:
36
+ raise ValueError("variance requires at least two values")
37
+ m = mean(values)
38
+ divisor = n - 1 if sample else n
39
+ return sum((v - m) ** 2 for v in values) / divisor
40
+
41
+
42
+ def stdev(values, sample=True):
43
+ return sqrt(variance(values, sample=sample))
44
+
45
+
46
+ def summary(values):
47
+ values = list(values)
48
+ return {
49
+ "count": len(values),
50
+ "min": min(values),
51
+ "max": max(values),
52
+ "mean": mean(values),
53
+ "median": median(values),
54
+ "stdev": stdev(values) if len(values) > 1 else 0.0,
55
+ }
@@ -0,0 +1,5 @@
1
+ Metadata-Version: 2.5
2
+ Name: StatKitLite
3
+ Version: 1.0.0
4
+ Summary: Lightweight statistics utilities
5
+ Requires-Python: >=3.8
@@ -0,0 +1,5 @@
1
+ statkitlite/__init__.py,sha256=R4PJKotzGo35gpgENYffXhS81sR-K2_beg3mSnz7tDQ,155
2
+ statkitlite/core.py,sha256=ZfytxYAU1aKKK_0KKXDq7zHuc_XZaaxOnK7RCWRjkYk,1353
3
+ statkitlite-1.0.0.dist-info/METADATA,sha256=pRm2qqw7dHP0obOt56Ivf7AC1HPvCqfrPqKZlbeBGDA,120
4
+ statkitlite-1.0.0.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
5
+ statkitlite-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.32.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any