Te 5 bibliotek Pythona uczyniło mnie lepszym analitykiem danych, niż kiedykolwiek mógłby to zrobić Excel
Chociaż Excel jest wszechobecny, ja wolę Pythona do analizy danych. Arkusze kalkulacyjne są świetne do formatowania danych, ale to Python pozwolił mi zbudować mój własny super kalkulator z wykorzystaniem zwykłych bibliotek Pythona. Oto moje ulubione narzędzia Pythona
NumPy
Kręgosłup statystyki Pythona
NumPy jest podstawą analizy danych w Pythonie. Głównym powodem jest to, że ułatwia pracę z konstrukcjami algebry liniowej w statystyce bez konieczności ręcznego przeglądania wielowymiarowych tablic. Oferuje również wiele szybkich obliczeń numerycznych, ponieważ korzysta z bibliotek takich jak LAPACK.
NumPy jest przydatny do analizy danych, ponieważ zawiera wiele wbudowanych funkcji, w tym klasyczne funkcje statystyki opisowej, takie jak średnia, mediana i odchylenie standardowe.
Mogę to zademonstrować, używając funkcji do stworzenia generatora liczb losowych i losując 50 próbek z rozkładu normalnego.
import numpy as np
rng = np.random.default_rng()
a = rng.standard_normal(50)
Najpierw policzę średnią:
a.mean()A mediana:
np.median(a)A próbną odchyłkę standardową (parametr ddof zmniejsza liczbę elementów w tablicy branych pod uwagę o jeden):
np.std(a,ddof=1)pandki
Znajdowanie odpowiedniej ramy dla danych
NumPy jest przydatne samo w sobie, ale nadaje się do pracy z tablicami i macierzami. pandas to biblioteka, która działa na „DataFrame'ach”, które są prostokątnymi strukturami danych podobnymi do arkuszy kalkulacyjnych i baz danych relacyjnych. Może nawet importować wiele z tych formatów, takich jak SQL, Excel i pliki CSV.
Pokażę to drugie, importując zestaw danych napiwków, które zebrał jeden kelner z Nowego Jorku w ciągu weekendu. zestaw danych napiwków, które zebrał jeden kelner z Nowego Jorku w ciągu weekendu:
import pandas as pd
tips = pd.read_csv('stats/data/tips.csv')Mogę zbadać zbiór danych za pomocą metody head():
Mogę również szybko uzyskać statystyki opisowe, które zebrałem wcześniej w całym zbiorze danych dla każdej kolumny za pomocą metody describe():
tips.describe()SciPy
Jeszcze więcej funkcji statystycznych
Chociaż NumPy i pandas mają kilka przydatnych funkcji statystycznych, często to nie wystarcza. SciPy posiada wiele przydatnych funkcji numerycznych do pracy naukowej, ale to funkcje statystyczne są najbardziej przydatne. Znajdują się one w podmodule stats.
Jeśli zwróciłeś uwagę podczas wspominania o statystyce opisowej, mogłeś zauważyć, że w Numpy i pandas brakuje wzmianki o dominancie (mode). Te biblioteki nie mają funkcji do obliczania dominanty, ale SciPy ją posiada. Użyję jej na tablicy z rozkładu normalnego wspomnianego wcześniej:
from scipy import stats
stats.mode(a)Istnieje również wiele testów statystycznych, w tym test T istotności statystycznej. Służyłby on do określenia, czy średnie dwóch niezależnych próbek różnią się w wystarczającym stopniu. Jest to używane w takich rzeczach jak testy A/B czy badania kliniczne. Zasimuluję dwie próbki za pomocą generatora liczb losowych NumPy i użyję metody ttest_ind():
sample_a = 2 + 3 * rng.standard_normal(15)
sample_b = 2 + 5 * rng.standard_normal(15)
stats.ttest_ind(sample_a,sample_b)Kod ustawia średnią dla obu na dwa oraz odchylenie standardowe 3 dla pierwszej próbki i odchylenie standardowe 5 dla drugiej.
Wartość P, oznaczana jako pvalue, określa istotność. Jeśli jest niższa od określonego progu, na przykład 0,05 dla poziomu ufności 95%, odrzucamy hipotezę zerową, że nie ma związku między tymi dwoma. W tym przypadku, ponieważ średnie są takie same, wartość P jest większa niż 0,05, więc nie możemy odrzucić hipotezy zerowej w tym przypadku.
Seaborn
Świetnie wyglądające wizualizacje
Wiele nowoczesnych obliczeń statystycznych opiera się na wizualizacji. Łatwo jest zobaczyć zależności statystyczne, gdy są one wykreślone. Chociaż Matplotlib był standardową biblioteką wizualizacji w Pythonie, jej rozpoczęcie pracy może być trudne. Seaborn to biblioteka wizualizacji statystycznej, która działa jako interfejs dla Matplotlib i umożliwia tworzenie wielu popularnych wizualizacji statystycznych, w tym klasycznych histogramów, wykresów pudełkowych, wykresów rozrzutu i wykresów regresji.
Statsmodels umożliwia tworzenie zaawansowanych wykresów. Pokażę to, tworząc wykres regresji napiwku w zależności od całkowitego rachunku i napiwku, a także uwzględniając, czy osoba była palaczem. Rozróżnię palaczy od niepalących za pomocą koloru oraz różnych kształtów znaczników, co uczyni wykres bardziej przystępnym dla osób z zaburzeniami widzenia kolorów.
import seaborn as sns
sns.set_theme()
sns.lmplot(x='total_bill',y='tip',hue='smoker',markers=['o','^'],data=tips)Ciekawe jest to, że osoby niepalące wydają się bardziej hojne niż palacze, z wyjątkiem jednego odstającego punktu w prawym górnym rogu. Wydaje się, że istnieje liniowa zależność między napiwkami a całkowitym rachunkiem. Im wyższy rachunek, tym wyższa napiwek.
statsmodels
Potężne modelowanie statystyczne na wyciągnięcie ręki
Chociaż możesz stworzyć wykres regresji w Seaborn, nie możesz uzyskać wartości dla linii równania. W tym celu musisz sięgnąć po inną bibliotekę. Statsmodels jest jedną z wybranych bibliotek. Jednym z największych zastosowań jest regresja liniowa, taka jak ta, którą pokazałem powyżej:
import statsmodels.formula.api as smf
results = smf.ols('tip ~ total_bill',data=tips).fit()
results.summary()To wykorzystuje system formuł spopularyzowany przez R do stworzenia obiektu regresji i wyświetlenia podsumowania. Wyniki w kolumnie coef są tym, czego potrzebujemy do równania regresji napiwków względem rachunku.
Liczby w tej kolumnie byłyby punktem przecięcia z osią y i nachyleniem dla klasycznego równania prostej y=mx + b, które możesz pamiętać z algebry w liceum.
W statsmodels jest znacznie więcej, w tym analiza wariancji, czyli ANOVA.
IPython i Jupyter
Łatwe interaktywne użycie Pythona
Chociaż nie są to tradycyjne „biblioteki”, IPython i Jupyter są ściśle związane z analizą danych.
IPython to duża aktualizacja interaktywnego interpretera Pythona, a Jupyter to atrakcyjny interfejs notebooka. Zwykle używam pierwszego do eksperymentowania, podczas gdy drugiego używam, gdy chcę zapisać swoje wyniki na później i podzielić się nimi z innymi ludźmi.
Python daje mi niezrównaną moc i łatwość w pracy z danymi
Nie mam nic przeciwko arkuszom kalkulacyjnym, takim jak Excel. Często korzystam z nich do formatowania danych i wprowadzania danych, ale gdy nadchodzi czas poważnych obliczeń, sięgam po Pythona. Moc bibliotek Pythona jest prawie niemożliwa do dorównania, podczas gdy Python nadal jest łatwym językiem do pisania, a co być może jeszcze ważniejsze, do czytania. Te biblioteki prawdopodobnie będą głównymi narzędziami statystycznymi w moim zestawie narzędzi.














