datahacker.rs@gmail.com

#002 Python kao najbolji alat za Data Scientist-a

#002 Python kao najbolji alat za Data Scientist-a

Python vs R

U Data Science-u stvari se veoma brzo menjaju. U 2015. godini popularni sajt za Data Science online obuku nudio je isključivo obuku za programski jezik R. Procene pokazuju da je Python u 2017. godini traženiji kada je u pitanju Machine Learning. Svakako za uspešnog Data Scientiest-a neophodno je poznavati oba programska jezika. 

Obzirom da dataHacker prati svetske trendove, kao radno okruženje koristićemo distribuciju Python Anaconda u kreiranju ovog bloga.

Anaconda Navigator

Anaconda Navigator

Python koristimo u Jupyter Notebook-u.

Jupyter Notebook

Jupyter Notebook

Za mašinsko učenje u okviru Python-a najviše se koriste sledeće biblioteke:

  • NumPy (“Nam-paj”) Numerical Python. Visoko optimizovana za rad sa numeričkim vektorima/nizovima i matricama koje predstavljaju osnovnu strukturu za većinu najmodernijih algoritama.
  • SciPy (“Sci-paj”) Scientific Python. Koristi NumPy nizove i omogućava brza numerička izvršavanja algoritama koji se koriste u inženjerskim i naučnim problemima.
  • Matplotlib – za crtanje kvalitetnih grafikona i dijagrama u Python-u.

Sada smo spremni da izvršimo prvih nekoliko naredbi. Naredbe se kucaju u “Cells”, a možete ih izvršiti pritiskom na Shift + Enter. 

Vektorizacija

Vektorizacija (engl. vectorization) je važan koncept u NumPy-ju. Moguće je procesirati nizove na brz način bez korišćenja loop petlji. Često se ovakav kod izvršava oko 300 puta brže nego sa “for petljom”. Kada se ne bi koristio koncept vektorizacije bilo bi neophodno da se napravi for petlja sa 6 iteracija u kojoj bi se svaki element pojedinačno množio sa 3.

Indeksiranje niza

Pojedinačnim elementima NumPy niza pristupamo indeksiranjem. Moguće je pristupiti i tačno određenom odsečku niza. Na engleskom se ova operacija zove slicing. Pogledajmo izvršavanja sledećih ćelija:

Plotovanje

Za kraj uvodnog dela o nizovima možemo nacrtati (engl. plot) jednu jednostavnu funkciju. Da bi ovo uradili, koristićemo biblioteku matplotlib. U ovom primeru napravićemo vremensku osu, kao promenljivu t. Prvo ćemo je inicijalizovati kao NumPy niz od 0 do 999, gde je tip elementa float. Ukoliko podelimo svaki od ovih brojeva sa 1000, dobićemo fino uzorkovanu osu od 0 do 1. Za ovu vremensku osu, napravićemo i kosinusnu funkciju. Uz pomoć element-wise procesiranja, svaki element niza t, automatski će biti iskorišćen za generisanje vrednosti nove funkcije (niza) x.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

ten + nineteen =