statistics
Podstawowe statystyki bez zewnętrznych bibliotek: średnia, mediana, dominanta, odchylenie standardowe i kwantyle.
Przykład
#import statistics
scores = [72, 95, 64, 88, 72, 100, 58]
print(round(statistics.mean(scores), 1))
print(statistics.median(scores))
print(statistics.mode(scores))
print(round(statistics.stdev(scores), 1))Definicja i zastosowanie
#Moduł statistics liczy podstawowe miary statystyczne dla list liczb, bez instalowania pandas czy NumPy. Funkcja mean() zwraca średnią arytmetyczną, median() medianę, czyli wartość środkową, a mode() dominantę, czyli wartość najczęstszą. To wystarczy do analizy wyników testów, czasu nauki czy liczby rozwiązanych zadań.
Mediana jest odporna na wartości skrajne. Jeden bardzo wysoki wynik mocno podnosi średnią, a medianę zmienia niewiele, dlatego przy czasach, cenach czy zarobkach warto patrzeć na obie miary. Przy parzystej liczbie danych median() zwraca średnią dwóch środkowych wartości.
Rozrzut danych opisują stdev() i variance(), czyli odchylenie standardowe i wariancja. Dwie grupy mogą mieć tę samą średnią, a zupełnie inny rozrzut wyników. quantiles() dzieli dane na równe części i zwraca punkty podziału, np. kwartyle. Pusta lista zgłasza StatisticsError, a odchylenie z próby wymaga co najmniej dwóch wartości.
Składnia
#import statistics
statistics.mean(dane)
statistics.median(dane)
statistics.mode(dane)
statistics.stdev(dane)
statistics.quantiles(dane, n=4)Najważniejsze funkcje
#mean()
średnia
Średnia arytmetyczna. Dla liczb całkowitych zwracaint, gdy wynik wychodzi równy.fmean()
średnia
Szybsza średnia, zawsze zwracafloat. Od Pythona 3.11 przyjmuje też wagi (weights).median()
mediana
Wartość środkowa po posortowaniu. Przy parzystej liczbie danych średnia dwóch środkowych.mode()
dominanta
Najczęstsza wartość. Przy remisie zwraca tę, która pojawiła się pierwsza. Działa też na napisach.multimode()
dominanty
Lista wszystkich najczęstszych wartości, w kolejności pierwszego wystąpienia.stdev()
odchylenie
Odchylenie standardowe z próby. Dla danych o całej grupie służypstdev().variance()
wariancja
Wariancja z próby, czyli kwadrat odchylenia standardowego. Dla całej grupy służypvariance().quantiles()
kwantyle
Punkty podziału danych nanrównych części, domyślnie kwartyle (n=4). Zwraca listę.
Więcej przykładów
#import statistics
minutes = [25, 30, 20, 35, 30, 240]
print(round(statistics.mean(minutes), 1))
print(statistics.median(minutes))Jedna czterogodzinna sesja podniosła średnią ponad dwukrotnie, a mediana nadal pokazuje typowy czas nauki. Przy parzystej liczbie danych mediana jest średnią dwóch środkowych wartości, stąd 30.0.
import statistics
group_a = [70, 72, 74, 76, 78]
group_b = [50, 62, 74, 86, 98]
print(statistics.mean(group_a), statistics.mean(group_b))
print(round(statistics.stdev(group_a), 1), round(statistics.stdev(group_b), 1))
print(statistics.quantiles(group_b, n=4))mean() zwraca int, gdy średnia liczb całkowitych wychodzi równa, dlatego widać 74, a nie 74.0.
import statistics
answers = ["B", "A", "B", "C", "A"]
print(statistics.mode(answers))
print(statistics.multimode(answers))
try:
statistics.mean([])
except statistics.StatisticsError as error:
print(error)Dobre praktyki
#- Przy danych z wartościami skrajnymi, takich jak czas, ceny czy zarobki, podawaj medianę obok średniej. Lepiej oddaje typową wartość.
- Dla dużych list liczb zmiennoprzecinkowych
fmean()jest wyraźnie szybsze odmean(). stdev()liczy odchylenie z próby, czyli dzieli przezn - 1. Gdy masz dane o całej grupie, a nie tylko o próbce, użyjpstdev().
Powiązane hasła
#- mathModuł z funkcjami matematycznymi: pierwiastki, zaokrąglanie, potęgi, logarytmy i stałe.
- sum()Dodaje do siebie wszystkie liczby z kolekcji.
- round()Zaokrągla liczbę do podanej liczby miejsc po przecinku.
- collections.CounterSłownik do zliczania: dla każdego elementu przechowuje liczbę jego wystąpień.
- sorted()Zwraca nową, posortowaną listę z elementów dowolnej kolekcji.
Widzisz błąd albo brakuje przykładu? Napisz do nas.