Społeczność Python stale się rozwija i powiększa o programistów, używających tego języka w swojej pracy, do rozwiązywania nowych wyzwań jakie niesie ze sobą praca programisty. Dzięki niestrudzonej pracy społeczności możemy cieszyć się możliwościami jakie daje bardzo bogaty zasób bibliotek open source stworzonych przez ambitnych pasjonatów Python.
Już standardowa biblioteka Pythona (Python Standard Library) dostarcza wiele przydatnych rozwiązań do przetwarzania danych, obliczeń, dostępu do plików i katalogów, persystencji danych, archiwizacji, szyfrowania…itd.
Poniżej przedstawię wybrane biblioteki Python.
Biblioteki Python z zakresu badań i analizy statystycznej:
NumPy (Numerical Python) – Python pozbawiony jest struktury tablicowej, w zamian wykorzystując listę. Jest to wygodne rozwiązanie, ale dość powolne w implementacji. Biblioteka NumPy dostarcza wydajną strukturę ndarray, która pozwala na reprezentowanie list oraz macierzy, wraz z procedurami.
SciPy (Scientific Python) – biblioteka ta dostarcza procedur do obliczeń naukowych np: całkowania, równań różniczkowych, operacji na macierzach.
StatsModels – udostępnia klasy i funkcje do estymacji wielu różnych modeli statystycznych, a także do przeprowadzania testów statystycznych i statystycznej eksploracji danych. Dla każdego estymatora dostępna jest obszerna lista statystyk wyników. Wyniki są testowane z istniejącymi pakietami statystycznymi, aby upewnić się, że są poprawne.
Biblioteka do analizy danych
Najpopularniejszą biblioteką do analizy danych i manipulacji danymi jest oczywiście Pandas. Jej dwie najważniejsze struktury, będącymi pochodnymi ndarray, toSeries – dla danych jednowymiarowychDataFrames – dla danych dwuwymiarowych
Wizualizacja
Matplotlib – to wieloplatformowa biblioteka do wizualizacji danych zbudowana na macierzach NumPy i zaprojektowana do pracy z szerszym stosem SciPy. Służy do wizualizacji danych i sporządzania różnego typu wykresów: liniowych, punktowych, słupkowych, konturowych, kołowych, wektorowych, siatkowych, kątowych, 3D i tekstowych.
Seaborn – to biblioteka zbudowana na bazie Matplotlib, wzbogacona o dodatkowe efekty. Zapewnia interfejs wysokiego poziomu do rysowania atrakcyjnej i informacyjnej grafiki statystycznej.
Uczenie maszynowe / Głębokie uczenie
Uczenie maszynowe to część sztucznej inteligencji, natomiast uczenie głębokie to odmiana uczenia maszynowego koncentrujaca się na sieciach neuronowych.
Scikit-learn – to biblioteka uczenia maszynowego dla Pythona. Zawiera kilka algorytmów regresji, klasyfikacji i klastrowania, w tym SVM, gradient boosting, k-means, random forests i DBSCAN. Został zaprojektowany do pracy z Python’em Numpy i SciPy.
Keras – jedna z najłatwiejszych w użyciu bibliotek Python związanych z deep learning. Stanowi warstwę prezentacji dla bibliotek takich jak: TensorFlow (Google), CNTK (Microsoft Cognitive Toolkit), Theano. Keras stosuje najlepsze praktyki w zakresie zmniejszania obciążenia poznawczego: oferuje spójne i proste interfejsy API, minimalizuje liczbę działań użytkownika wymaganych w typowych przypadkach użycia oraz zapewnia jasne i przydatne komunikaty o błędach. Zawiera również obszerną dokumentację i przewodniki dla programistów.
TensorFlow – to bliblioteka stworzona przez Googla, związana z głębokim uczeniem. TensorFlow ułatwia początkującym uzytkownikom i profesjonalistom tworzenie modeli uczenia maszynowego. Nazwa pochodzi od jednostek przetwarzania tensorowego (TPU – Tensor Processing Units), które zostały skonstruowane przez Googla.
OpenAI Gym – biblioteka Pythona do opracowywania i porównywania algorytmów uczenia się przez wzmacnianie, zapewniająca standardowy interfejs API do komunikacji między algorytmami uczenia się a środowiskami, a także standardowy zestaw środowisk zgodnych z tym interfejsem API. Innymi słowy jest to środowisko do tworzenia, testowania i porównywania algorytmów uczenia ze wzmocnieniem.
Przetwarzanie języka naturalnego
NLTK (Natural Language Toolkit) – Biblioteki Python i programy do symbolicznego i statystycznego przetwarzania języka naturalnego. Jest to jedna z najpotężniejszych bibliotek NLP, która zawiera pakiety, dzięki którym maszyny rozumieją ludzki język i potrafią na niego odpowiedzieć.
TextBlob – biblioteka zorientowana obiektowo, bazuje na NLTK, służy do przetwarzania tekstów. Zapewnia prosty interfejs API do zagłębiania się w typowe zadania przetwarzania języka naturalnego (NLP), takie jak: znakowanie części mowy, wyodrębnianie fraz, analiza składni, klasyfikacja, tłumaczenie i inne.
Gensim – biliotek Python wykorzystywana do indeksowania kolekcji dokumentów i wyszukiwania dokumentów na podstawie indeksu.