12 Python biblioteka za Data Science

Mnogi u svom poslu koriste R ili MATLAB  kada analiziraju podatke. Bez obzira što je razvijen od strane statističara, u poslednjim godinama se nameće i programski jezik Python sa jako puno kvalitetnih i korisnih open source biblioteka kada je u pitanju data science i sa zajednicom koja je veća i koja se mnogo brže razvija nego R zajednica. 

Više o samom jeziku Python sam pisao u ovom tekstu dok u nastavku teksta možete pročitati neke od biblioteke koje se najčešće koriste kada je u pitanju analiza i vizualizacija podataka.

Sadržaj:

NumPy

python numpy

Jedna od najfundamentalnijih open source biblioteka za Python kada je u pitanju proračunavanje je definitivno NumPy (Numerical Python).

Nudi pre svega matematičke funkcija koje vrše operacije na podacima. Ima karakteristiku veoma brzog i efikasnog izvršavanja funkcija. Dokumentacija i osnove se nalaze ovde.

Pandas

python pandas data science logo

Pandas je besplatna open source biblioteka kreirana od strane Wes McKinney-a koja radi sa obeleženim i relacionim podacima.

Dizajnirana je za brzu i laku manipulaciju podataka, agregaciju, filtriranje itd. Ima dve strukture podatka, Series i DataFrame, a više o njima i samoj biblioteci sam pisao u ovom tekstu. 

Odlična knjiga o Pandas napisana je od strane kreatora biblioteke 2012. godine i može se naći u izdanju O’Reilly ‘Python for Data Analysis 2 edition’.

Dokumentacija same biblioteke koju savetujem da se detaljno pregleda i prouči se nalazi ovde.

Vizualizacija

Matplotlib

python matplotlib logo

Matplotlib biblioteka je dizajnirana za laku i moćnu vizualizaciju podataka i postoji već više od 14 godina. Poslednja stabilna verzija je 2.0.2 koja je izašla početkom maja 2017. godine. Ova biblioteka je uz NumPy i Pandas vrlo ozbiljan konkurent naučnim, dobro poznatim alatima (ali poprilično skupim) kao što su MatLab i Mathematica.

Ono što predstavlja manu kod Matplotlib-a je to što je poprilično low level što znači da je potrebno da se napiše više linija koda kako bi se došlo do nekih naprednijih vizualizacija što podrazumeva da je potrebno mnogo više truda i vremena nego kada se koriste high level plaćeni alati ali svakako trud  je vredan pokušaja.

Zvanična dokumentacija se nalazi ovde.

python matplotlib
Credit: matplotlib.org

Seaborn

Seaborn biblioteka je pre svega fokusirana na izradu atraktivnih vizualizacija statističkih grafikona kao što su prikazi heat mapa, distribucije podataka itd. Ova biblioteka je bazirana i zavisna od Matplotlib biblioteke.

Tutorijal se nalazi ovde.

python seaborn
Credit: seaborn.pydata.org/examples

Bokeh

Još jedna biblioteka koja je usmerena na vizualizacije. Za razliku od Seaborn, Bokeh je nezavisna od Matplotlib-a.

Glavni fokus ovoj biblioteci je interaktivnost i prezentacija vizualizacija kroz moderne web browser-e kao u stilu D3.js. Dokumentacija se može pogledati na ovom linku. 

 

python bokeh
Credit: bokeh.pydata.org/en/latest/

Altair

Altair je novija biblioteka za statističku vizualizaciju. Uz minimalno koda mogu da se produciraju jako efektivne i lepe vizualizacije, a API ove biblioteke je jednostavan i izgrađen na osnovu moćne Vega Lite.

Novi tipovi grafikona i vizualizacija mogu da se očekuju u budućnosti jer je pod konstantnim i aktivnim razvojem.

python altair
Credit: vega.github.io/vega-lite

Mašinsko učenje (machine learning)

Mašinsko učenje je vrsta programiranja koja daje kompjuterima mogućnost da automatski uče od podataka bez potrebe da budu eksplicitno programirani. Ovo znači da ovi programi mogu da promene svoje ponašanje tako što će učiti od podataka. Mašinsko učenje se može grubo podeliti na dve kategorije:

  • Učenje pod nadzorom (Supervised learning)
  • Učenje bez nadzora (Unsupervised learning)

Scikit-Learn

python scikit learn

SciKit-learn je open source biblioteka koja je trenutno jedna od industrijskih standarda kada je u pitanju mašinsko učenje u Python-u. Takođe može da služi kao vrlo efikasan alat za data mining i analizu podataka. Izgrađena je na osnovu NumPy, SciPy i Matplotlib.

Biblioteku kombinuje kvalitetan kod i dobra dokumentacija, lakoća korišćenja i odlične performanse. Poseduje klasifikaciju, regresiju, klastering, preprocesiranje itd. Dizajnirana je da funkcioniše sa NumpySciPy bibliotekama. Ima algoritme za mašinsko učenje i može vrlo lako da se mašinsko učenje poveže sa produkcionim sistemima.

scikit learn machine learning python
Credit: scikit-learn.org

MlPy

mlpy machine learning python

MlPy je Python biblioteka za mašinsko učenje izgrađena na Numpy-SciPy bibliotekama. Nudi širok spektar metoda za mašinsko učenje kako supervised tako i unsupervised. Ovo je multi platforma, što znači da radi i na Python v2 i na Python v3.

python mlpy
Credit: mlpy.sourceforge.net

Data scraping

Scrapy

python scrapy

Scrapy predstavlja biblioteku za pravljenje crawling programa poznatijih kao spider bots za dostavljanje struktuiranih podataka kao što su npr. kontakt informacija ili URL-ovi sa interneta.

Open source je, napisana je u Python-u i originalno je dizajnirana striktno za scraping. Vremenom Scrapy je evoluirao u zreo framework sa mogućnošću da skuplja podatke sa API-ja i takođe da se ponaša kao generalni crawler.

Statistika

Statsmodels

python statsmodels

Statsmodels je Python biblioteka koja dozvoljava korisnicima da istražuju podatke, procenjuju statističke modele i izvode statističke testove. Poseduje obimnu listu deskriptivne statistike, statističkih testova i dostupna je za različite tipove podataka.

Pruža obimne funkcije za vizualizaciju i dizajnirana je pre svega za statističku analizu i  karakterišu je visoke performanse pogotovu kada se upotrebljava sa velikim setovima podataka (big data).

Obrada prirodnog jezika (Natural Language Processing)

NLTK

Skraćenica ove biblioteke zapravo znači The Natural Language Toolkit i koristi se za česte zadatke statističkog procesuiranja prirodnog jezika u Python-u. Izrađena je pre svega da olakša učenje i istraživanje NLP i njegovih srodnih polja (lingvistika, kognitivna nauka i veštačka inteligencija).

Gensim

Gensim je open source biblioteka za Python koja implementira alate koji rade sa vektorskim modelovanjem. Efikasnost postiže korišćenjem NumPy strukture podataka i SciPy operacija i to odlično radi kada su u pitanju veliki tekstovi.

Gensim se koristi za sirove i nestruktuirane digitalne tekstove i implementira razne algoritme koji su unsupervised (bez nadzora).

Zaključak

U tekstu su navedene neke od korisnih i često korišćenih biblioteka kada je u pitanju data science industrija i na njih definitivno treba obratiti pažnju i pratiti njihov razvoj u budućnosti.

Naravno postoji još mnogo frugih biblioteka i framework-a koje su takođe vredne pažnje i koje se koriste tako da budite slobodni ako imate neku sugestiju da podelite utiske u komentaru ispod.

Srećno učenje!

O autoru

Dušan Milošević

Curious digital analyst passionate about analytics, funk/disco music and new travel destinations. Always chasing the spark and searching for signal in the noise, combining technical know-how with digital marketing looking for actionable insights.
Proactive thinker, with the ability to adapt and learn quickly. Collaborative, with cross-functional team experience working with product, development and client-side teams.

Dodaj komentar

This site uses Akismet to reduce spam. Learn how your comment data is processed.