diff --git a/Week02/weighted_kayraemre_karaosmanoglu.py b/Week02/weighted_kayraemre_karaosmanoglu.py new file mode 100644 index 00000000..66f4147f --- /dev/null +++ b/Week02/weighted_kayraemre_karaosmanoglu.py @@ -0,0 +1,9 @@ +import random +def weighted_srs(data, n, weights, with_replacement=False): + w = weights if weights else [1]*len(data) + if with_replacement or weights: + return random.choices(data, weights=w, k=n) + res, d_c = [], list(data) + for _ in range(n): res.append(d_c.pop(random.randrange(len(d_c)))) + return res + diff --git a/Week03/shifted_kayraemre_karaosmanoglu.py b/Week03/shifted_kayraemre_karaosmanoglu.py new file mode 100644 index 00000000..b4ac691b --- /dev/null +++ b/Week03/shifted_kayraemre_karaosmanoglu.py @@ -0,0 +1,6 @@ +import statistics + +def shifted(data): + mean = statistics.mean(data) + median = statistics.median(data) + return abs(mean - median) / abs(mean) * 100 if mean != 0 else 0 diff --git a/weighted_kayraemre_karaosmanoglu,py b/weighted_kayraemre_karaosmanoglu,py new file mode 100644 index 00000000..0a401055 --- /dev/null +++ b/weighted_kayraemre_karaosmanoglu,py @@ -0,0 +1,6 @@ +import random + +def weighted_srs(data, n, weights, with_replacement=False): + if with_replacement: return random.choices(data, weights=weights, k=n) + if not weights: return random.sample(data, n) + return random.sample(data, n, counts=weights)