brzi tečaj pythona za znanstvenike - pmf iva vrsaljko.pdf · računanje derivacije funkcije čija...

21
Brzi tečaj Pythona za znanstvenike Python nudi mnogo načina na koje se mogu modelirati i analizirati znanstveni podaci. Program se instalira vrlo lako, a nije ga problem niti naučiti pa je zato popularan za korištenje u znanstvenoj zajednici. Kako bi mogli uspješno izvršiti programe opisane u daljnjem tekstu potrebno je instalirati iduće na svoje računalo: Python- verziju 3.3 ili stariju jer neke biblioteke nemaju verzije koje rade na novim verzijama Pythona Numpy- osnovne numeričke ekstenzije za linearne algebre i višedimenzionalne polja Scipy-dodatne biblioteke za znanstveno programiranje Matplotlib- biblioteke koje se uglavnom koriste za grafički prikaz podataka IPython-dodatne biblioteke potrebne za korištenje programa Izrada nacrta koristeći Matplotlib: Koristimo sučelje IPython kako bi pomoću biblioteke Matplotlib napravili graf nekog zadatka. U prvom primjeru uspoređujemo rast dviju funkcija. Fibonaccijevog niza i faktorijela. Zanima nas koji od dva niza brže raste, a to je najlakše prikazati grafom. o Označava veličinu sučelja o Crta funkciju faktorijela i stvara naljepnicu „factorial“ na grafu o Crta funkciju fibs i stvara naljepnicu „Fibonacci“ na grafu o Ispod x osi piše „n“ o Stvara na grafu legendu (ona sadrži naljepnice)

Upload: others

Post on 21-Feb-2020

9 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

BrzitecajPythonazaznanstvenike

Python nudi mnogo načina na koje se mogu modelirati i analizirati znanstveni podaci. Program se instalira

vrlo lako, a nije ga problem niti naučiti pa je zato popularan za korištenje u znanstvenoj zajednici. Kako bi

mogli uspješno izvršiti programe opisane u daljnjem tekstu potrebno je instalirati iduće na svoje računalo:

Python- verziju 3.3 ili stariju jer neke biblioteke nemaju verzije koje rade na novim verzijama Pythona

Numpy- osnovne numeričke ekstenzije za linearne algebre i višedimenzionalne polja

Scipy-dodatne biblioteke za znanstveno programiranje

Matplotlib- biblioteke koje se uglavnom koriste za grafički prikaz podataka

IPython-dodatne biblioteke potrebne za korištenje programa

Izrada nacrta koristeći Matplotlib:

Koristimo sučelje IPython kako bi pomoću biblioteke Matplotlib napravili graf nekog zadatka.

U prvom primjeru uspoređujemo rast dviju funkcija. Fibonaccijevog niza i faktorijela. Zanima nas koji od dva

niza brže raste, a to je najlakše prikazati grafom.

o Označava veličinu sučelja

o Crta funkciju faktorijela i stvara

naljepnicu „factorial“ na grafu

o Crta funkciju fibs i stvara

naljepnicu „Fibonacci“ na grafu

o Ispod x osi piše „n“

o Stvara na grafu legendu (ona

sadrži naljepnice)

Page 2: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Funkcija faktorijela raste mnogo brže pa funkciju Fibonacci gotovo i ne vidimo na grafu. Međutim, možemo

izračunati logaritamske vrijednosti kako bi mogli vidjeti i drugu funkciju jer će razlike biti manje.

o Pridružuje logaritamske vrijednosti faktorijelama

o Pridružuje logaritamske vrijednosti fibonaccijevom nizu

Sada se na grafu jasno vidi da funkcija faktorijela brže raste.

Numpy i Scipy

Numpy je biblioteka prilagođena za brzo računanje vektora, matrica i drugih operacija s područja linearne

algebre u Pythonu. Scipy sadrži dodatne funkcije za optimizaciju koda, neke specijalne funkcije i slično.Kod

stvaranja vektora možemo nakon upisivanja elemenata polja napisati zarez i unutar navodnika slovo.

(array([element polja1, element polja 2, ...], 'neko slovo') To nam slovo govori kojeg će tipa biti elementi

vektora.

o Pisanje 'd' stvara u polju brojeve float tipa

o Pisanje 'D' stvara u polju kompleksne brojeve float tipa

o Pisanje 'i' stvara u polju brojeve int tipa duge 32 bita

Page 3: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Kad stvaramo matrice možemo stvarati polja čiji su elementi liste ili koristiti posebne funkcije Numpyja za

stvaranje matrica.

o Stvaramo polje s elementima koji su liste

o Stvaramo matricu veličine 3 puta 3

koja za elemente ima samo nule

o Stvaramo matricu veličine 1 x 3

o Stvaramo matricu veličine 3 x 1

Možemo prmijetiti da su svi članovi navedenih matrica tipa float jer smo nakon izbora matrice koristili slovo

'd'. Možemo stvoriti i jediničnu matricu. Ili upisivanjem pojedinačno elemenata liste u polje ili:

o Naredba 'identity' stvara jediničnu matricu

o Matrica je veličine 4 x 4

o Tipovi u njoj su float

Page 4: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Ukoliko želimo odabrati elemente polja između vrijednosti a i b, a ne želimo ih ručno upisivati možemo

koristiti funkciju linspace(a,b):

o Koristeći funkciju linspace stvaramo polje elemenata

koji su između zadanih vrijednosti a i b - linspace (a,b). Rezultat je

nastajanje polja od 50 vrijednosti između zadanih parametara.

o Ukoliko u zagradu upišemo još jedan argument c – linspace(a,b,c) – on određuje od koliko će se

vrijednosti između zadanih parametara sastojati polje

Korištenje linspacea dolazi do izražaja kada želimo crtati funkcije jer nam tada treba dosta vrijednosti

između dva parametra kojima pridružujemo neku drugu vrijednost.

Nacrtati ćemo funkciju sin(x):

o Pomoću linspacea nađemo 50 vrijednosti x

parametra

o Izračunamo sinus od tih vrijednosti

o Pomoću matplotliba crtamo graf funkcije f(x)=sin(x)

Page 5: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Rad s matricama:

o Množimo jediničnu matricu s brojem 0.125

o Dodajemo jediničnoj matrici matricu [1,1],[1,2]

o Množi svaki identitet prve matrice s identitetom druge na istom mjestu

o Operacija dot(matrica1, matrica2) također množi

o [3,4] x [3,4] = 9+16=25

o Korijen(25)=5

Matricama možemo računati inverz (matrica.I), transponirati ih (matrica.T) ili računati determinantu

(matrica.D).

Operacija diag(lista vektora) prima kao argument listu vektora koje raspoređuje po dijagonali.

Funkcija solve(matrica1, matrica2) prima kao argument dvije matrice od kojih se prva sastoji od

elemenata linearne jednadžbe , a druga od vrijednosti iza znaka jednakosti te daje rješenja jednadžbi.

a+b+c=6

2b+5c=-4

2a+5b-c=27

Page 6: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Funkcija eigenvals(matrica) prima kao argument matricu i računa njene svojstvene vrijednosti. Funkcija

eigvalsh(matrica) prima kao argument matricu i računa svojstvene vrijednosti hermitske matrice.

Funkcija eig(matrica) prima kao argument matricu i računa njene svojstvene vrijednosti i svojstvene

vektore. Funkcija eigh(matrica) prima kao argument matricu i vrača svojstvene vrijednosti i svojstvene

vektore Hermitske matrice.

Računanje derivacije funkcije čija je definicija možemo riješiti računajući

funkciju tako da za jednoliko raspoređene točke na x-osi računamo odgovarajuće

točke na y osi.

Računanje derivacije:

o definiramo funkciju

nderiv()

o Dužina y

o Dok je i između 1 i n-1

puni elemente matrice d s

elementima derivacije

o Vraća d

U glavnom programu pokušat ćemo izračunati derivaciju funkcije f(x)=sin(x) ta usporediti dobiveni graf s

f(x)=cosx što znamo da je derivacija sinu

o Stvara argument dsin koji

poziva funkciju nderiv te

joj prosljeđuje argumente

sinx i x

o Stvara graf koji smo dobili

računajući derivacije

numerički (plavi)

o Stvara graf koji bi dobili

analitički (zeleni)

Page 7: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Vidimo da su vrijednosti koje smo dobili skoro pa potpuno točne. Dakle, kad nije potrebna ekstremno velika

preciznost, možemo ovom metodom računati derivacije.

Crtanje svojstvenih funkcija kvantnog harmoničkog oscilatora:

Želimo riješiti jednanžbu kada je potencijal harmoničkog

oscilatora

Koristit ćemo trik da pomnožimo obije strane jednadžbe sa ψ* te intgriramo po x kako bi iz diferencijalne

jednadžbe dobili matricu. Dobivamo: .Ovdije ćemo

opet koristiti aproksimaciju derivacije, ali sada druge . Sada su nam y(i) stanja.

Gledamo druge derivacije y(1), y(2).... ...y(n) te bi trebali dobiti Laplacianovu matricu

za prvi član Schrodingerove jednadžbe. Za drugi član dobivamo dijagonalnu matricu s V(��) dijagonalnim

elementima .

o Definiramo funkciju Laplacijan

o Pretpostavljamo jednoliko rasporedjene

točke

o Dok je i između 1 i n stvara elemente

matrice M

o Vraća M/ℎ�

Nakon što smo stvorili funkciju, možemo ju pozivati iz glavnog programa

Page 8: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Rješenja jednadžbe harmoničkog oscilatora kada su ona Hermitski polinomi:

U Numpyju postoji specijalna funkcija Hermite(argument) koja izračunava Hermitski operator od argumenta.

o Definiramo funkciju ho_evec

o Ako pozovemo funkciju Hermite

o Ona izračunava Hermitski operator

o Kojeg kasnije horistimo u vrijednosti koju vraća funkcija

o Iz glavnog programa pozivamo funkciju ho_evec()

koja aproksimira vrijednosti funkcije harmoničkog

oscilatora

o Izračunavamo vrijednosti koje znamo da bi trebali

dobiti numerički

o Dobivamo dvije krivulje koje se gotovo preklapaju

Možemo koristiti i subplot(a,b,c) funkciju koja dijeli graf na a x b dijelova i stavlja osi na poziciju c. Njome

ćemo odjednom prikazati različita rješenja za harmonički oscilator (n=1,2,3...) na više grafova.

Page 9: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

o Crtamo 6 različitih grafova

o Subplotom dijelimo output na 2 x 3 dijela i

svaki put postavljamo koordinatne osi na

početak idućeg dijela

o Računamo funkciju analitički i numerički

te dobivamo približno iste vrijednosti za

mali n

Scipy sadrži još cijeli niz specijalnih funkcija kao što su Airyjeve funkcije, Besselove funkcije, Chebysheovi

polinomi, Legendreovi polinomi i slično.

Ako imamo podatke za koje otprilike znamo po kojoj funkciji se ravnaju, možemo koristiti izradu grafa na

temelju vrijednosti koje imamo. Pretpostavimo da imamo nekakve podatke raw_data

Page 10: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Crtanje grafova kada podaci rastu/padaju po nekoj funkciji:

o Stvara polje data koje se sastoji od naših podataka

o Stvara točke na grafu iz izračunatih podataka

o Vidimo da nastaje graf koji očito raste

eksponencijalno. Ako još k tome

znamo da naši podaci i trebaju rasti

eksponencijalno možemo im izračunati

logaritamske vrijednosti i trebali bi

dobiti pravac

o Uporabom funkcije semilogy dobivamo

logaritamske vrijednosti podataka na y osi

o I zaista je x-y ovisnost pravac

Postoji funkcija polifit() koja prilagođava podatke formi polinoma.

o Prilagođava podatke polinomu prvog

reda

Page 11: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Podatke možemo prilagođavati i drugim funkcijama kao što su polinomi viših redova ili Gaussijan.

U Pythonu postoji funkcija random(). Ona daje random brojeve između 0 i 1 kad ju se pozove.

o Na y-osi bira random brojeve

između 0 i 1, na x-osi ide od 1

do 100

Možemo izračunati broj pi tako da izabiremo random brojeve i računamo koliko se njih nalazi u kružnici

jedinične veličine.

Page 12: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Izračunavanje broja π:

o Računa random

vrijednosti za x

o Računa random

vrijednosti za y

o Jednadžba kružnice

o Zbraja one točke koje

su od središta udaljene za

manje od r (koje su unutar

kružnice)

o Crta točke (x,y) u plavoj boji ako su unutar

bkužnice

o Crta točke (x,y) u crvenoj boji ako su izvan

kružnice

Ideja ovog programa je da se za izračunavanje pi

koristi pretpostavka da je omjer točaka koje završe

unutra spram točaka koje završe van kružnice pi/4 o

čemu pa je zato u naslovu grafa računato:

π= �(�����������������)

�����������������

Želimo izračunati integral to možemo učiniti pomoću sljedećeg

programa:

o Stvara i crta funkciju f(x)=���

o Koristimo funkciju quad(a,b,c) koja

izračunava integral od a u granicama od b

do c koja vraća rezultat i procijenjenu

grešku računa

Page 13: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Ako imamo 'bučne' podatke (noisy data) često koristimo brze Fourijerove transformacije (fast Fourier

transform-fft) nad njima.

Računanje Fourijerovih transformacija:

o Vraća 4000 vrijednosti između

0 i 120 i pridružuje ih t

o Vraća random signale

o abs(fft(argument)-Računa

apsolutnu vrijednost

signala transformiranog

Fourijerovom transformacijom

o fftfreq(n,d)-vraća polje duljine

n koje se sastoji od frekvencija

razmaknutih za d

o crta graf Fourijerovih

transformacija

o crta graf Fourijerovih

frekvencija

Page 14: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Upravljanje podacima:

Korištenje podataka:

o Sve što se u Pythonu nalazi između trostrukih navodnika (''' ili “““) Python tretira kao jedan string

o Koristeći funkciju splitlines() myoutput smo

pretvorili u linije

Informacije iz liste koje nam trebaju da nacrtamo graf su: stupac u kojem pišu energije, Gmax stupac (sadrži

maksimalni gradijent pri svakom koraku) i Walltime stupac.

o Prolazi kroz sve linije osim prve dvije

o Fukncija split() vraća listu riječi u stringu line

o Tu smo listu nazvali words (riječi) iako se radi o

brojevima

o Pridružuje poljima energy, gmax i time vrijednosti

s točno određenog mjesta u stringu words.

Page 15: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Ovo je uredu za ispisivanje podataka, ali da bi nešto s podacima radili oni ne smiju ostati u obliku stringa već

moraju biti u formi brojeva (int, float, double...) jer naši podaci i jesu brojevi.

o To možemo postići koristeći naredbu float()

o Sada imamo numpy polje 'data' koje sadrži informacije koje trebamo. Ako na početku imamo podatke odvojene zarezom,

možemo koristiti sljedeći program:

o Jedan element liste words je sve ono do idućeg zareza

o Koristi funkciju map(tip podatka, string) koja vraća listu argumenata nekog tipa podatka iz words i stavlja ih u polje 'data'

Bez obzira na koji su način podaci bili zapisani sada se nalaze u polju data pa ih možemo dozvati iz memorije i pomoću njih nacrtati graf.

o Ispisujemo podatke iz polja 'data' i

crtamo ih na graf

Page 16: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Sofisticiranije korištenje podataka iz stringova:

o Pisanje %d stvara broj tipa integer

o Pisanje %f stvara broj tipa float

o Pisanje %.4f stvara broj tipa float, ali pokazuje samo prva 4 decimalna mjesta

o Pisanje %e stvara broj puta 10 na neku potenciju

Možemo napisati pismo koje, na primjer, šaljemo svima kojima neki proizvod nije dostavljen na vrijeme.

Forma pisma uvijek je ista, mijenjaju se samo datum, ime kupca i razlog zbog kojeg pošiljka nije stigla na

vrijeme. Kako ne bi morali svaki put pisati pismo ispočetka, možemo napisati sljedeći kod i kod funkcije

print svaki puta izmjeniti samo ove tri stvari.

%s ispisuje string

Upotrijebili smo %(ono što fali)s, a ne samo %s zato što u ovom slučaju ne treba pamtiti redosljed stvari

koje fale nego je u funkciji print dovoljno napisati “ono što fali“:“ono što treba pisati“

Možemo definirati i funkcije koje koriste nepoznat broj argumenata. To možemo činiti pomoću **kwargs ili

*args. Načelno, nakon zvijezdica može stajati bilo što (bitno je samo da li je jedna zvijezdica ili su dvije) , ali

najčešće se koriste ova dva naziva.

**kwargs –keyword argument koji uzima bilo koji dodatni argument dan funkciji i upisuje ga u

riječnik naziva kwargs. Kasnije u programu pozivamo ga metodom get() koja vraća vrijednost za

dani ključ

*args – argument koji uzima bilo koji dodatni argument dan funkciji i upisuje ga u listu naziva args

Page 17: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Korištenje argumenta kwargs:

o Definiramo funkciju my_linspace koja osim

ostalih argumenata koristi **kwargs

o Pretvaramo ključ iz kwargs riječnika u

vrijednost

o Punimo izračunate vrijednosti u polje v koje

se vraća u glavni program

o Pozivamo funkciju u glavnom programu i

prosljeđujemo joj argument False za endpoint

što znači da neće ispisati zadnju vrijednost (1)

o Output programa je lista između 0 i 1 od 5

elemenata od kojih zadnji nije 1

„List comprehensions“ i „generatori“:

List comprehension – Način stvaranja liste. Večinom izgledaju kao liste, ali s malo logike u njima.

Generator – Deklarira funkciju koja se ponaša kao iterator .

Iterator – Radi slijed objekata. Kako ne bi morali prolaziti brojačem kroz svaki pojedini element liste

koristimo iterator. Oni se koriste kako bi se ubrzao kod.

Stvaranje liste parnih brojeva:

o Udvostručava brojač i dok je on između 0 i 10

o Te ispisuje parne brojeve do 10

Srvaranje liste neparnih brojeva:

o Ostatak dijeljenja brojača i sa 2 je 1 ako je i neparan, pregledava za prvih 20 brojeva

o Dobivamo listu neparnih brojeva između 0 i 20

Page 18: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Ispisivanje parnih brojeva pomoću iteratora:

o stvara funkciju evens_below()

o Ona koristi xrange(n) što je iterator

od funkcije range(n) koja generira

listu od n vrijednosti

o Vraća parne brojeve

o Ispisuje parne brojeve do 9

o Od brojeva uvijek možemo napraviti listu koristeći list()

Korištenje generatora:

o Pozivamo funkciju

evens_gen koja se

ponaša kao iterator

Factory funkcije:

Factory funkcija – funkcija koja vraća funkciju jer je funkcija unutar funkcije

Crtanje Gaussijana pomoću factory funkcije:

o Stvaramo funkciju gauss_marker koja prima 3

argumenta

o Unutar nje stvaramo funkciju f koja vraća vrijednost

gaussijana

o Iz gauss_markera vraćamo vrijednost funkcije f

o g je funkcija gauss_marker(visina,širina,

centar)

koja vraća različite vrijednosti f

o crtamo graf

(vrijednosti između 0 i 1,g(od tih

vrijednosti) )

Page 19: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

„Serialization“- spremanje za kasnije:

Serialization- ispisivanje podataka ili funckija u nekakvu bazu podataka kako bi podatak mogli

koristiti kasnije u programu

Program sprema tekst u memoriju:

o Imamo podatke koji se zovu json_data

o Koristimo json.loads () funkciju kako bi napunili podatke u memoriju

o Koristimo json.dumps() funkciju kako bi ispisali podatke

Funkcionalno programiranje:

Lambda –operator kojim se služimo umjesto da definiramo funkciju. Pomoću nje možemo drugim

funkcijama prenositi funkcije kao argumente

Map() –opetovano primjenjuje funkciju na listu

Sum() –zbraja elemente liste

Korištenje lambda:

38

Korištenje map:

Korištenje sum:

15

Objektno orijentirano programiranje:

Objektno orijentirano programiranje daje nam alate da sami deklariramo objekte i metode.

Page 20: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Ubrzavanje koda u Pythonu:

Najbolje je ne ubrzavati izvršavanje koda jer računalo računa dosta brzo, a pogotovo programe koje će

profesori najvjerojatnije koristiti. Ako smo sigurni da kod ipak treba optimizirati koristimo naredbe iz math

modula:

Timeit- govori nam koliko vremena treba računalu da nešto napravi

Profiling- pomoću njega možemo razumjeti na što točno program troši vrijeme

Ubrzati kod možemo i korištenjem swing, cython i PyPy metode, ali njih se ne ćemo doticati.

Korištenje timeit:

o Funkcija factorial koju smo sami napisali 100 je puta sporija od funkcije fact koju sadrži sam Python

Korištenje profiling:

o Poziva cProfile.run(a)- želimo vidjeti na

što funkcija a u argumentu troši

vrijeme

o Vidimo da poziva 4 funkcije u 0.36

sekundi

o Možemo vidjeti i koliko je puta

pozvana koja funkcija, koliko je poziv

trajao, koliko je svaki poziv trajao, kojoj

datoteci je pristupljeno i slično

Page 21: Brzi tečaj Pythona za znanstvenike - PMF Iva Vrsaljko.pdf · Računanje derivacije funkcije čija je definicija možemo riješiti računajući funkciju tako da za jednoliko raspoređene

Literatura:

http://nbviewer.ipython.org/gist/rpmuller/5920182

http://stackoverflow.com/

http://docs.scipy.org/

http://docs.numpy.org/

http://docs.python.org/

Seminar pripremila i napisala: Iva Vrsaljko, PFI