Naukę Python, podzielić można, na 3 główne etapy:

  1. Opanowanie podstaw Python, jak funkcje, listy i operacje na nich. Co jest dobrze opisane w kursie – Nauka Python dla początkujących oraz kursie ćwiczenia Python, dla początkujących.

  2. Opanowanie bardziej złożonych tematów, jak programowanie obiektowe, funkcje rekurencyjne, dekoratory, odwzorowanie list itd, Czemu dedykowany był kurs – Python NIE tylko, dla początkujących

  3. Zapoznanie się z najważniejszymi bibliotekami Python, do dewelopmentu aplikacji sieciowych, operacji na danych, plikach itd

W niniejszym artykule skupimy się na tym trzecim.

Porozmawiamy o najważniejszych bibliotekach, z którymi warto się zaznajomić ucząc się programowania w Pythonie. Warto je znać niezależnie czy naszą długo falową aspiracją jest bycie programistą front endu, back endu czy też specjalistą do spraw sztucznej inteligencji. Stanowią po prostu dobra podstawę. Aby było ciekawej, podzielimy je na obszary zastosować.

Zaczynajmy!

Praca z plikami. Bardzo ważny obszar oraz obecny w niezależnie czym będziemy się specjalizować. Aktywności administracyjne, takie jak kopiowanie, archiwizowanie plików, wykonamy za pomocą biblioteki shutil. Jest to prosta biblioteka do wysoko poziomowych operacji na plikach jak np. kopiowanie.

Jeżeli chodzi o czytanie, analizowanie oraz przetwarzanie plików w xls czy też w csv, czyli ustrukturowanych, to absolutnym numerem jeden jest biblioteka Pandas. Ona umożliwi nam łatwą manipulację danymi.

Automatyzacja. Bardzo ciekawy obszar. W szczególności że na fali są systemy nazywane RPA (Robotic Process Automation), które przejmują kontrolę nad myszką i klawiaturą, po czym wykonują wcześniej podaną instrukcję. Systemy te kosztują fortunę, gdyż umożliwiają nam eliminację pracy człowieka w sytuacjach powtarzalnej interakcji z aplikacjami.

Otóż okazuje się że do tego samego celu możemy wykorzystać Python oraz biblioteki Selenium (automatyzacja aplikacji webowych), pyautogui (prosta automatyzacja aplikacji desktopowych). Bibliotek jest trochę więcej, jednak po zapoznaniu się z tymi dwoma będziemy mieć bardzo dobre zrozumienie czy chcemy dalej zajmować się tą tematyką czy też nie.

Analiza danych i sztuczna inteligencja. Zaczniemy od biblioteki która jest podstawą, i rozszerza możliwości operacji i przetwarzania list – NumPy. Dzięki niej możemy swobodnie operować np na macierzach, co z użyciem samych list, jest skomplikowane. Jest to darmowa alternatywa do Matlab. Następnie najpopularniejsza biblioteka do przetwarzania danych – Pandas. Tak! O niej już mówiliśmy przy pracy z plikami. Umożliwi nam czyszczenie danych, łączenie, filtrowanie, sortowanie i wiele innych niezbędnych operacji. Wszystko, to co dane SQL i więcej. Będzie to o wiele łatwiejsze i szybsze niż do wykonania w narzędziach graficznych do tego przeznaczonych. Przykładowo w narzędziu KNIME przeznaczonym dla Data Science, również możemy operować na plikach. Jednak, jeżeli poświęcimy trochę więcej czasu na naukę Pandas, będzie to o wiele bardziej elastyczne i efektywne.

Kolejnymi bibliotekami o których grzech nie wspomnieć to Scikit-learn oraz TensorFlow. Scikit-learn zawiera klasyczne algorytmy, które umożliwią nam między innymi uczenie drzew decyzyjnych, regresji itp. TensorFlow została wymieniona przez ze mnie tylko ze względu na swoją popularność, zasygnalizowania jej istnienia oraz różnic od Scikit-learn. Otóż TensorFlow jest sławną biblioteką udostępnioną przez Google kilka lat temu, służącą do deep learningu. Np do zaawansowanej analizy obrazu. Będziemy chcieć z niej skorzystać raczej jak już będziemy ukierunkowani na sztuczną inteligencję. Na pewno skorzystamy z OpenCV, która to w łatwy sposób umożliwi nam zaprogramowanie rozpoznawania twarzy.

Wizualizacja danych. Wykres rzecz ludzka. I chociaż uciekam od robienia wykresów w językach programowania, z tego powodu że brakuje mi cierpliwość, to są przypadki kiedy faktycznie jest to niezbędne. Aby przekonać się dlaczego tego nie lubię, jednocześnie, aby poradzić sobie w sytuacjach kiedy będzie to niezbędne, zapraszam do zapoznania się z bibliotekami MatPlotLib oraz genialnego jej rozszerzenie Seaborn.

Będziemy chcieć z nich skorzystać, w jednej z poniższych sytuacji:

  • proste wykresy, typu histogram, do wykonania na szybko w trakcie analizy danych
  • bardzo wyrafinowane wykresy, nie możliwe do osiągnięcie w Excel czy Tableau
  • wtedy kiedy potrzebujemy aby były automatycznie odświeżane.

w innych przypadkach, Excel i wiele innych narzędzi służy pomocą.

Strony internetowe. Front end stron pisany jest w HTML przy pomocy CSS oraz JavaScript. Natomiast backend, który umożliwia zarządzanie użytkownikami, interakcję z bazami danych oraz innymi systemami może być zarządzany poprzez Flask lub Django. To te dwie biblioteki umożliwią nam zbudowanie strony, która oprócz wyświetlania informacji będzie również prowadzić interakcję z innymi aplikacjami oraz użytkownikiem. Flask – prosty, lekki framework. Można by rzec podstawowy. Django – kombain, który zawiera wiele elementów już gotowych do użycia. Jak np. zarządzanie użytkownikami.

Django zajmuje o wiele więcej czasu do nauki, jednak po jego opanowaniu strony tworzy się o wiele szybciej niż we Flask. Po porostu wiele rzeczy które we Flasku musimy zrobić sami, zespół Django już za nas zrobił i dostarcza jako możliwości tego frameworka.

Interfejse okientowy. Tworzenie programu okienkowego umożliwi nam w łatwy sposób biblioteka wxPython. Jest to o tyle przyjemne że aplikacje będą działać zarówno pod Windows, Mac oraz Linux. Jednak w dzisiejszych czasach zastanowił bym się porządnie zanim rozpoczął bym pisanie aplikacji, czy oby nie powinna być wykonana w formie aplikacji webowej.

I to na tyle. Oczywiście jest ogromna ilość bibliotek które mają duża wartość w przypadku Python. Na tym też polega jego siła. Jednak od czegoś trzeba zacząć. Czas poświęcony na nawet podstawowe zapoznanie się z powyższymi bibliotekami na pewno nie będzie czasem straconym.