Zbliżenie na monitor komputera wyświetlający kod programistyczny w języku Python, w tle rozmyte biurko z narzędziami.

Dlaczego Python jest tak popularny w pracy z danymi i sztuczną inteligencją?

7 minut czytania
Komentarze

Python od lat zajmuje pierwsze miejsce pośród najbardziej popularnych, a na pewno najbardziej uwielbianych, języków programowania. Jest tak zwłaszcza w jego zastosowaniach do pracy z danymi oraz sztucznej inteligencji, gdzie de facto “króluje niepodzielnie”. Sam nie wyobrażam sobie pracy w innym języku niż Python i mam nadzieję, że po lekturze tego tekstu – o ile jeszcze tego nie robisz – sam zaczniesz w Pythonie programować jeszcze częściej.

Autor: dr Jan Kwapisz (Dijkstra Enterprise)

Python – skromne początki

Python został opracowany w latach 90-tych przez Guido van Rossuma. Nazwa języka pochodzi od popularnego kabaretu Latający Cyrk Monty Pythona, zaś jego symbolem jest charakterystyczny wąż.

Python jest językiem interpretowanym, co oznacza, że kod źródłowy jest tłumaczony na kod maszynowy na bieżąco w czasie wykonywania programu. Z jednej strony powoduje to, że kod w Pythonie można dużo łatwiej wykorzystywać na różnych komputerach. Prawie wszystkie programy w Pythonie działają bez zarzutu na każdym sprzęcie1. Z kolei gry komputerowe są pisane prawie wyłącznie w języku C++, z uwagi na wyższą wydajność kodu w tym języku. Python ma jednak parę specjalnych własności oraz pewną unikalną filozofię, które przesądziły o jego sukcesie.

Jeśli czegoś nie możesz napisać w Pythonie w jeden wieczór to…

Pamiętam, że przez pierwsze dwa lata studiów programowałem w C++ (oraz w Fortranie). Na 3 roku poszedłem na zajęcia z Symulacji komputerowych w fizyce. Tam prowadzący w 2 godziny wytłumaczył nam całą podstawową składnię Pythona2 i od razu mogliśmy przystąpić do symulacji. Efekt był taki, że na tych samych zajęciach w 200 liniach kodu tworzyłem symulacje gazów czy planet okrążających wiele Słońc naraz. To wszystko łącznie z podglądem wyników na bieżąco w postaci wykresów czy animacji w gifie. Te same kody zajęły mi na innych zajęciach około 500 linii kodu w C++, natomiast całą oprawę graficzną i tak trzeba było robić w Pythonie.

Jeśli nie ma się jakichkolwiek podstaw w programowaniu to nauka Pythona może zająć trochę więcej. Tym niemniej Python jest naprawdę prosty i naprawdę szybko można robić ciekawe oraz bardzo przydatne rzeczy. Co więcej, Python ma czystą, czytelną składnię, dzięki czemu jest łatwy do zrozumienia nawet dla początkujących. Oznacza to, że analitycy danych mogą skupić się na analizie danych, zamiast grzęznąć w skomplikowanym kodzie i koncepcjach programowania.

Filozofia Pythona sprzyja szybkiemu pisaniu kodu, do tego stopnia, że Guido van Rossem kiedyś powiedział: Jeśli czegoś nie możesz napisać w jeden wieczór w Pythonie, to nie warto się tym zajmować.

Środowisko Jupyter

Python nie tylko ma czystą składnię, ale można w nim programować dosłownie linijka po linijce i obserwować na bieżąco rezultaty. Normalny program musi być wywołany w całości od początku do końca, ewentualnie program się zatrzyma kiedy nie będzie wiedział, co ma zrobić i wypisze komunikat o błędzie. Do programowania linijka po linijce służy konsola IPython (Interactive Python) oraz jej rozwinięcie, czyli środowisko Jupyter, w szczególności tak zwane Jupyter Notebooki. W środowisku tym nie tylko można każdą operację wywołać oddzielnie i następnie jej wynik zostanie zapamiętany i może być użyty później. Ponadto można tam dodać tekst narracyjny, umieścić wykresy, zdjęcia, wideo czy muzykę. Dzięki temu jest nie tylko świetne środowisko do nauki programowania, ponieważ każde nowe zagadnienie można najpierw opisać, a następnie od razu zastosować w praktyce2.

Taki Jupyter Notebook przypomina trochę interaktywny raport, który, o ile jest dobrze przygotowany, może być od razu użyty do przedstawienie osobom nietechnicznym. Środowisko Jupyter umożliwia nawet zapis w postaci książki z serii takich notebooków czy wygenerowanie prezentacji na jego podstawie. Z drugiej strony praca z danymi w takim środowisku jest naprawdę przyjemna. Jedyne czego brakuje to to, żeby Jupyter “czytał” Excela, ale i nad tym prowadzone są konkretne prace. Bardzo ładnie wczytuje natomiast pliki o rozszerzeniu .csv.

Baterie w pakiecie

Kolejnym elementem filozofii Pythona są baterie w pakiecie. Oznacza to, że Python ma bardzo rozbudowany system dodatkowych funkcjonalności, tzw. Bibliotek, które o ile nie są częścią samego języka, to mogą być do niego w każdym momencie podpięte.

Biblioteki te zapewniają potężne narzędzia do manipulacji danymi, wizualizacji, uczenia maszynowego i uczenia głębokiego. Niektóre z najpopularniejszych bibliotek nauki o danych w Pythonie to NumPy, Pandas, Scikit-learn, TensorFlow i PyTorch.

NumPy to biblioteka, która zapewnia obsługę dużych, wielowymiarowych tablic (takich jak w Excelu) i macierzy oraz zawiera dużą bibliotekę funkcji matematycznych do pracy z tymi tablicami.

Pandas to biblioteka, która zapewnia obsługę analizy i manipulacji danymi oraz zawiera potężne narzędzia do czyszczenia, transformacji i agregacji danych, a więc wyciągania z nich wniosków napędzających decyzje biznesowe. Pandas to taki Excel, tylko, że lepszy bo z importu [3].

Scikit-learn to biblioteka, która zapewnia obsługę uczenia maszynowego i zawiera narzędzia do klasyfikacji, regresji, grupowania i redukcji wymiarowości.

TensorFlow i PyTorch to biblioteki, które zapewniają wsparcie dla głębokiego uczenia i zawierają narzędzia do budowania i uczenia sieci neuronowych.

Bogaty ekosystem bibliotek Pythona umożliwia szybkie i łatwe tworzenie złożonych procesów analizy danych i uczenia maszynowego. Zamiast pisać kod od zera, analitycy danych mogą wykorzystać istniejące biblioteki i narzędzia do budowania swoich przepływów pracy, oszczędzając czas i wysiłek.

Łatwość w łączeniu z innymi językami

Z tą cechą wiąże się jeszcze inna ważna cecha języka Python. Bardzo łatwo go połączyć z innymi językami programowania. Przykładowo, jeśli jakieś zadanie wymaga dużej mocy obliczeniowej to możemy to zadanie “wydelegować” do innego języka (mówi się o tak zwanym backend), wtedy to zadanie będzie wykonane w tle przez ten szybszy język (zazwyczaj C++) natomiast my możemy nadal cieszyć się łatwością pisania w Pythonie.

Dodatkowo biblioteki PyTorch oraz Tensorflow są w pełni zintegrowane z technologią CUDA zapewnioną przez NVIDIĘ, co pozwala szkolić sieci neuronowe na kartach graficznych, osiągając wielokrotne przyspieszenie w treningu. Z drugiej strony w bibliotece PyTorch wszystkie informacje o metodzie szkolenia sprowadzają się do jednej linijki kodu:

optimizer = optim.Adam(model.parameters(), lr=0.001)

Prawda, że proste?

Python ma także wiele innych zalet takich jak wsparcie społeczności programistów oraz system generatorów, który wydatnie przyspiesza pracę z bardzo dużymi danymi, powodując, że są one wczytywane do pamięci tylko wtedy kiedy trzeba.

Python na sam koniec, czyli podsumowanie

Podsumowując, Python stał się językiem wybieranym przez wielu analityków danych ze względu na łatwość użycia, bogaty ekosystem bibliotek, silne wsparcie społeczności, interoperacyjność z innymi językami, elastyczność i skalowalność. Jest naprawdę sensownym rozwiązaniem zarówno dla osób, które dopiero zaczynają programować, jak I tych, którzy na temacie zjedli już zęby.

O autorze:

Autor jest doktorem fizyki teoretycznej, w pracy zajmuje się przetwarzaniem języka przy użyciu sieci neuronowych. Jest Head of Product w Dijkstra Enterprise i przygotował kurs Dijkstra: Podstawy Pythona. Jest certyfikowanym Instruktorem NVIDIA Deep Learning Institute oraz nauczycielem akademickim na Uniwersytecie Warszawskim.

Przypisy oraz objaśnienia

1Jeden wyjątków stanowi oprogramowanie do Deep Learningu, które opiera się o autorski język programowania CUDA stworzony przez NVIDIĘ, który może być wykonywany tylko na komputerach z kartą graficzną tej firmy. Notabene miałem okazję brać udział w pracach nad ulepszeniami biblioteki warp, która pozwala używać tego języka z “poziomu” Pythona, co bardzo przyspiesza tworzenie kodu.

2W Dijkstra w ten sposób właśnie uczymy, dzięki czemu wszystko masz w jednym miejscu i możesz się skupić na programowaniu. Ponadto w naszym kursie wszystko dzieje się w przeglądarce, więc wystarczy się zalogować na naszą platformę DijkstraHub, a my zapewniamy Ci w pełni skonfigurowane środowisko do nauki Pythona oraz potrzebną moc obliczeniową. Jeśli chcesz zobaczyć jak to wygląda to możesz sprawdzić naszą LEKCJĘ PRÓBNĄ.

UWAGA, za pierwszym razem strona może ładować się parę sekund, wynika to z faktu, że przeglądarka musi zainstalować ciasteczka do obsługi Pythona. NIE polecamy też używania Safari, testowaliśmy to na Google Chrome.

3W Python biblioteki “podpina” się właśnie poleceniem import.

fot. Canva.com/GettyImages/tookitook

Motyw