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.
statkitlite/__init__.py
ADDED
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
|
+
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,,
|