Programmeermethoden NA. Week 9: NumPy & Matplotlib
|
|
|
- Edith Eva van der Heijden
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Programmeermethoden NA Week 9: NumPy & Matplotlib Kristian Rietveld
2 Arrays met meerdere dimensies Vorige week hebben we kennis gemaakt met NumPy en het werken met 2-dimensionale arrays. >>> >>> [[6 [6 [6 M = np.tile(6, (3, 4)) print M 6 6 6] 6 6 6] 6 6 6]] # 3 rijen, 4 kolommen
3 Indexeren & Slicen Gegeven: >>> A array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]]) Voorbeelden: A[3,4] = 19 A[3,:] = array([15, 16, 17, 18, 19]) A[3:5,1:3] = array([[16, 17], [21, 22]])
4 Diagonaal aanpassen >>> A = np.eye(6) >>> np.diag(a) array([ 1., 1., 1., 1., 1., 1.]) # Maakt een kopie! Aanpassen helpt niet. >>> d = np.diag(a) # Geeft een fout: >>> np.diag(a) = np.arange(10, 16) Hoe pakken we dat dan aan?
5 Diagonaal aanpassen (2) >>> A[range(6),range(6)] = range(10, 16) >>> A array([[ 10., 0., 0., 0., 0., 0.], [ 0., 11., 0., 0., 0., 0.], [ 0., 0., 12., 0., 0., 0.], [ 0., 0., 0., 13., 0., 0.], [ 0., 0., 0., 0., 14., 0.], [ 0., 0., 0., 0., 0., 15.]])
6 Multi-dimensionale arrays maken Het is ook mogelijk een multi-dimensionale array te maken vanuit een geneste lijst. >>> >>> [[1 [6 >>> (2, C = np.array([[1, 2, 3], [6, 7, 4]]) print C 2 3] 7 4]] print C.shape 3) Of aan de hand van een string in "Matlab-notatie": >>> >>> [[1 [6 D = np.array(np.mat("1 2 3; 6 7 1")) print D 2 3] 7 1]]
7 Het veranderen van de vorm Met.reshape() kun je de vorm van een array aanpassen. De parameter is een vorm-tuple met de gewenste vorm. Let op: het aantal elementen blijft hetzelfde. >>> print np.arange(10, 20).reshape((2, 5)) [[ ] [ ]] >>> print np.arange(10, 20).reshape((5, 2)) [[10 11] [12 13] [14 15] [16 17] [18 19]]
8 Werken met verschillende vormen arrays Operaties kunnen alleen worden uitgevoerd op arrays met dezelfde vorm. Met.reshape() kunnen we een array een andere vorm geven om een operatie toch mogelijk te maken. >>> A = np.ones( (4, 3) ) >>> B = np.array( [1, 2, 3] ) # shape: (3, ) # B optellen bij elke rij van A. >>> A + B.reshape( (1, 3) ) array([[ 2., 3., 4.], [ 2., 3., 4.], [ 2., 3., 4.], [ 2., 3., 4.]])
9 Blokhaken Let op de extra blokhaak corresponderend met de extra dimensie: Shape (3,): [1, 2, 3] Shape (1, 3): [[1, 2, 3]] In het voorbeeld probeert NumPy standaard een dimensie toe te voegen: (3,) wordt omgezet naar (1, 3) om een operatie toch mogelijk te maken. A + B.reshape( (1,3) ) en A + B in dit geval hetzelfde.
10 Gebruik kolomvectoren Een kolomvector is eigenlijk 2-dimensionaal: (4, 1). Als we een 1-dimensionale array als kolomvector willen gebruiken, moeten we dus reshape toepassen. Ook mag de volgende notatie om een dimensie toe te voegen (np.newaxis). >>> C = np.array( [1, 2, 3, 4] ) >>> A + C.reshape( (4, 1) ) array([[ 2., 2., 2.], [ 3., 3., 3.], [ 4., 4., 4.], [ 5., 5., 5.]]) >>> A + C[:,np.newaxis] array([[ 2., 2., 2.], [ 3., 3., 3.], [ 4., 4., 4.], [ 5., 5., 5.]])
11 Nu eerst Zo direct meer NumPy, we kijken nu eerst naar het maken van plots.
12 matplotlib Matplotlib is een plotting "package" waarmee hoge kwaliteit plots kunnen worden gemaakt. Zeer veel mogelijkheden. Wordt gebruikt in combinatie met NumPy.
13 Een eerste plot import numpy as np import matplotlib.pyplot as plt # x # # y Bepaal de x-coordinaten die we willen plotten. = np.arange(0, 10, 0.5) Bereken nu voor elk x-coordinaat de y-waarde Functie: y = 3x + 5 = 3 * x + 5 # Geef de x- en y-arrays als parameters aan de plot functie. plt.plot(x, y) # Zet de plot op het scherm plt.show()
14 Kleuren en markers plt.plot() accepteert een groot aantal argumenten: color="red" marker="o" - punten markeren met cirkels. linewidth=2.5 - dikke lijn. linestyle="dotted" - stippellijn. label="mijn lijn" - komt in de legenda terecht.
15 Kleuren en markers (2) import numpy as np import matplotlib.pyplot as plt x = np.linspace(-2, 2, 25) y1 = 3 * x + 5 y2 = 5 * x ** 2-3 plt.plot(x, y1, color="blue", lw=1.0, linestyle="solid", marker=".") plt.plot(x, y2, color="red", lw=4.0, linestyle="dotted") plt.show()
16 Kleuren en markers (3)
17 Titel & labels Zonder titel en aslabels is de plot natuurlijk niet af. plt.title("titel") : titel van de plot. plt.xlabel("label"), plt.ylabel("label") : aslabels. We mogen TeX gebruiken in matplotlib strings
18 Grid en assen Met plt.grid(true) kun je een achtergrond grid aanzetten. De intervallen van de assen kunnen op verschillende manieren worden ingesteld: - plt.ylim(-2, 10) en analoog voor plt.xlim(). - Of: plt.axis(xmin=0, xmax=20., ymin=-10, ymax=100.). plt.xscale("log") : geef de x-as een logaritmische schaal.
19 Legenda De opgegeven labels kunnen eenvoudig in een legenda worden afgebeeld. plt.legend(loc="upper right"). Je mag ook opgeven iets als center, lower left, etc.
20 Voorbeeld import numpy as np import matplotlib.pyplot as plt x = np.linspace(-2, 2, 25) y1 = 3 * x + 5 y2 = 5 * x ** 2-3 plt.plot(x, y1, color="blue", lw=1.0, linestyle="solid", marker=".", label="rechte lijn") plt.plot(x, y2, color="red", lw=4.0, linestyle="dotted", label="parabool") plt.title("mijn plot") plt.xlabel("x-as") plt.ylabel("y-as") plt.grid(true) plt.legend(loc="upper right") plt.show()
21 Voorbeeld
22 Opslaan naar een bestand Om op te slaan als PDF bestand: vervang plt.show() met plt.savefig("hallo.pdf").
23 Meerdere plots maken Herhaalde aanroepen van plt.plot() tekenen in hetzelfde figuur. Met de functie plt.figure() kunnen we een nieuw figuur beginnen. Voor het maken van meerdere plots volg je de volgende stappen: plt.figure(). Een of meerdere aanroepen plt.plot(). Plot opmaken door assen in te stellen, titel te zetten, enz. plt.show() of plt.savefig(). Optioneel: terug naar stap 1 voor de volgende plot.
24 Scatter plots import numpy as np import matplotlib.pyplot as plt x = np.random.random_integers(-19, 19, 100) y = np.random.random_integers(-19, 19, 100) plt.scatter(x, y, color="green") plt.title("mijn scatter plot") plt.xlabel("x-as") plt.xlim(-20, 20) plt.ylabel("y-as") plt.ylim(-20, 20) plt.savefig("scatterplot.pdf")
25 Scatter plots
26 Histogram maken NumPy kent ook vele kansverdelingen, zoals de normaalverdeling. We kunnen hier een histogramplot van maken. Je kunt ook zelf histogrammen maken van een gegeven array met behulp van np.histogram(). import numpy as np import matplotlib.pyplot as plt s = np.random.normal(0.0, 0.8, 1000) # Histogram met 25 "bins" en normaliseer het histogram plt.hist(s, bins=25, normed=true) plt.title("histogram van een normaalverdeling") plt.xlabel("x") plt.xlim(-3, 3) plt.ylabel("kansdichtheid") plt.savefig("histogram.pdf")
27 Histogram maken (2)
28 Meerdere plots uit 1 array Het is mogelijk om met 1 plt.plot() aanroep meerdere reeksen te plotten. Dus bijvoorbeeld als je een meerdimensionale array hebt met meerdere reeksen, kun je deze in 1 keer plotten. Matplotlib zal elke kolom van de array als getallenreeks beschouwen. Een nadeel: we kunnen geen gebruik meer maken van de label= functionaliteit. - In plaats daarvan moeten we "handles" opvangen en doorgeven aan de legenda functie.
29 Voorbeeld x = np.linspace(-10, 10, 200) y = np.zeros( (x.shape[0], 3) ) # Plaats 1 getallenreeks per kolom y[:,0] = x ** 2 y[:,1] = 2 * x ** 2 y[:,2] = 4 * x ** 2 # x 1-d, y 2-d. h = plt.plot(x, y) # "h" bevat de handles. plt.legend(h, ("1", "2", "3")) plt.show()
30 "Putting everything together" Veel programma's zullen bestaan uit: - Input: tekstbestand, CSV, gegenereerd, random, iets anders... - Processing: rekenen mbv NumPy - Output: tekstbestand, CSV, binary array data of een plot. Voor Input en Output zul je waarschijnlijk heel vaak een Python module kunnen vinden die het meeste werk al kan klaren.
31 Terug naar NumPy
32 Reductieoperatoren langs een as Tot nu toe reductieoperatoren op volledige array. Uitkomst: een enkel element. Je kunt een reductie ook langs een bepaalde as van de array laten plaatsvinden. Geef als parameter mee: axis=1 met 1 het nummer van de as (geteld vanaf 0).
33 Reductie langs een as >>> A = np.tile( [1,2,3], (3,1)) >>> A array([[1, 2, 3], [1, 2, 3], [1, 2, 3]]) >>> A.sum(axis=0) array([3, 6, 9]) >>> A.sum(axis=1) array([6, 6, 6])
34 cumsum operator Met cumsum kun je cumulatief sommeren. Het aantal dimensies neemt dan niet af, dus dit is geen reductie operator. >>> A = np.arange(15).reshape(3, 5) >>> A array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) >>> A.cumsum() array([ 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105]) >>> A.cumsum(axis=1) array([[ 0, 1, 3, 6, 10], [ 5, 11, 18, 26, 35], [10, 21, 33, 46, 60]])
35 Rollen Door middel van "rollen" kunnen we elementen in een matrix "n" plaatsen opschuiven np.roll(np.arange(5), 2)
36 Roteren en spiegelen Tenslotte nog operaties om te roteren en te spiegelen. >>> A = A.arange(0, 9).reshape( (3, 3) ) # Draai 90 graden tegen de klok in >>> np.rot90(a) array([[2, 5, 8], [1, 4, 7], [0, 3, 6]]) # Horizontaal spiegelen. Er is ook np.flipud() >>> np.fliplr(a) array([[2, 1, 0], [5, 4, 3], [8, 7, 6]])
37 All en any Om te kijken of een array aan een bepaalde conditie (Boolean expessie) voldoet, kunnen we gebruik maken van np.all() en np.any(). >>> A = np.arange(10, 19).reshape( (3, 3) ) # Zijn alle elementen >= 15? >>> np.all(a >= 15) False # >= 10? >>> np.all(a >= 10) True # Is er tenminste een element gelijk aan 14? >>> np.any(a == 14) True # En aan 4? >>> np.any(a == 4) False # Tenminste een element kleiner dan 10? >>> np.any(a < 10) False
38 Maskers In de vorige slide gebeuren er eigenlijk twee dingen: Er wordt een Boolean array gemaakt: een masker. Er wordt gekeken of ten minste een, of alle, Boolean waarden True zijn. >>> A = np.arange(10, 19).reshape((3, 3)) >>> A >= 15 array([[false, False, False], [False, False, True], [ True, True, True]], dtype=bool) # Tel aantal keer true in de Boolean array >>> np.sum(a >= 15) 4
39 Selectie van elementen We kunnen maskers ook gebruiken om elementen te selecteren! >>> mask = A >= 15 # Druk elementen >= 15 af. (Let op: 1-d view) >>> print A[mask] [ ] # Tel 100 op bij elementen >= 15 >>> A[mask] += 100 >>> print A [[ ] [ ] [ ]]
40 Selectie van elementen (2) Slice zowel rij als kolom gecombineerd: >>> A = np.zeros( (5, 5) ) >>> m = np.zeros(a.shape, dtype=np.bool8) >>> m[2,:] = True >>> m[:,2] = True >>> A[m] = 999 >>> A array([[ 0., 0., 999., 0., 0.], [ 0., 0., 999., 0., 0.], [ 999., 999., 999., 999., 999.], [ 0., 0., 999., 0., 0.], [ 0., 0., 999., 0., 0.]]) >>> A[m] array([ 999., 999., 999., 999., 999., 999., 999., 999., 999.])
41 Lezen uit bestanden f = open("getallen.txt", "r") for line in f: line = line.rstrip("\n") a, b, c = line.split(" ") a, b, c = int(a), int(b), int(c) som = a + b + c print "Som:", som f.close()
42 Lezen uit bestanden (2) Stel we willen alleen de eerste kolom opslaan in een NumPy array. import numpy as np f = open("getallen.txt", "r") v1 = [] for line in f: line = line.rstrip("\n") a, b, c = line.split(" ") v1.append(int(a)) f.close() A1 = np.array(v1) print A1 print np.sum(a1 * 4)
43 loadtxt() functie NumPy heeft een ingebouwde functie om data uit tekstbestanden te laden die bestaan uit regels met getallen. # gegeven het volgende bestand # code: >>> A = np.loadtxt("test1.txt") >>> print A [[ ] [ ] [ ] [ ]]
44 loadtxt() functie (2) Getallen gescheiden door komma's: A = np.loadtxt("test2.txt", delimiter=",") Strings inladen gaat niet vanzelf goed (tenzij je zelf het datatype goed instelt). Maak gebruik van skiprows en usecols om rijen/kolommen met strings over te slaan. np.genfromtxt() is een zelfde soort functie met meer opties.
45 Driehoek van Pascal A[i-1,j-1] + A[i-1,j] = A[i,j]
46 Driehoek van Pascal (2) def pascaldriehoek(n): pascal = np.zeros( (n, n), dtype=np.int32 ) # Nulde kolom bevat enen pascal[:,0] = 1 pascal[0,1] = 0 print pascal[0,0], for i in range(1, n): print "\n", pascal[i,0], for j in range(1, i+1): pascal[i,j] = pascal[i-1,j-1] + pascal[i-1,j] print pascal[i,j], if i!= n - 1: pascal[i,i+1] = 0
47 Driehoek van Pascal (3) In de functie wordt de hele driehoek (tijdelijk) opgeslagen in een 2-dimensionale array pascal. Dit kan efficienter! We kunnen volstaan met een 1-dimensionale array rij, dat telkens de i-de rij uit de driehoek van Pascal bevat. Om de (i+1)-de rij te vinden gebruiker we immers alleen de i-de rij, dus alle vorige rijen zijn niet meer nodig. Merk op dat een volgende rij nu altijd van rechts naar links gevuld moet worden, omdat je anders waarden overschrijft die je nog nodig hebt.
48 Driehoek van Pascal (4) def pascaldriehoekbeter(n): rij = np.zeros(n, dtype=np.int32) # 0-de kolom altijd 1 rij[0] = 1 print rij[0] for i in range(1, n): for j in reversed(range(1, i+1)): rij[j] = rij[j-1] + rij[j] print rij[j], print rij[0]
49 Insertion sort def invoegsorteer(a): N = A.shape[0] # We zetten steeds A[i] goed in reeds # gesorteerde beginstuk for i in range(1, N): temp = A[i] j = i - 1 while j >= 0 and A[j] > temp: A[j+1] = A[j] j -= 1 A[j+1] = temp
50 Matrix optelling Gebruik altijd de NumPy operator om matrices op te tellen! Maar als voorbeeld, hoe zouden we zelf matrix optelling moeten implementeren? def matadd(a, B): # Stel zeker dat A en B dezelfde dimensies hebben assert A.shape == B.shape C = np.zeros(a.shape) for i in range(0, A.shape[0]): for j in range(0, A.shape[1]): C[i,j] = A[i,j] + B[i,j] return C
51 Matrix vermenigvuldiging Gebruik altijd de NumPy operator om matrices te vermenigvuldiging! Maar als voorbeeld, hoe zouden we zelf matrix vermenigvuldiging moeten implementeren? def matmul(a, B): # Stel zeker dat kolomdim. A overeenkomt met rijdim. B assert A.shape[1] == B.shape[0] M, K, N = A.shape[0], A.shape[1], B.shape[1] C = np.zeros( (M, N) ) for i in range(0, M): for j in range(0, N): for k in range(0, K): C[i,j] += A[i,k] * B[k,j] return C
52 Zeef van Eratosthenes N = 1000 wortel = np.sqrt(n) # Initialiseer op True, tot tegendeel bewezen is... zeef = np.ones(n, dtype=np.bool8) zeef[0] = False zeef[1] = False for getal in range(2, int(wortel)): if zeef[getal]: # Streep veelvouden door veelvoud = 2 * getal while veelvoud < N: zeef[veelvoud] = False veelvoud += getal for getal in range(2, N): if zeef[getal] == True: print getal, # Of: print np.where(zeef == True)
53 Tot slot Werkcollege: - Op papier II - En verder met de programmeeropdracht. Volgende week: - Restje NumPy (3-dimensionale arrays) - ipython - Python module showcase
Programmeermethoden NA. Week 9: NumPy & Matplotlib
Programmeermethoden NA Week 9: NumPy & Matplotlib Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Arrays met meerdere dimensies Vorige week hebben
Python voor Natuur- en Sterrenkundigen Week 4
Python voor Natuur- en Sterrenkundigen Week 4 Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pmpy2015/ Vorige week Geparkeerde vraag: hoe maken we een slice van zowel een rij als kolom
Python voor Natuur- en Sterrenkundigen Week 3
Python voor Natuur- en Sterrenkundigen Week 3 Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pmpy2015/ Deze week Voortbouwen op onze basiskennis Python Modules & Packages NumPy Matplotlib
Workshop Python voor Wis- en Natuur/ Sterrenkundigen
Workshop Python voor Wis- en Natuur/ Sterrenkundigen 29 januari 2018 Waarom & hoe Waarom? - Sinds 2016 is het vak Programmeermethoden gesplitst: I & W krijgen de taal C++, N & A krijgen Python. - Binnen
Programmeermethoden NA. Week 10: NumPy, Python module showcase
Programmeermethoden NA Week 10: NumPy, Python module showcase Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Inhoud vandaag De laatste zaken
Programmeermethoden NA. Week 8: NumPy
Programmeermethoden NA Week 8: NumPy Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Blok 3 Thema: Python inzetten voor wetenschappelijk rekenen. Week 8: NumPy Week 9: Matplotlib
Workshop Python voor Wis- en Natuur/ Sterrenkundigen
Workshop Python voor Wis- en Natuur/ Sterrenkundigen 27 januari 2017 Waarom & hoe Waarom? - Sinds dit jaar is het vak Programmeermethoden gesplitst: I & W krijgen de taal C++, N & A krijgen Python. - Binnen
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def
Tussentoets Programmeren en genomics, 8CA10, versie A 17 maart 2017, u.
Tussentoets Programmeren en genomics, 8CA10, versie A 17 maart 2017, 15.45-16.45u. Er zijn 2 opgaven. Per opgave is er een bestand (respectievelijk opgave1.py en opgave2.py) beschikbaar waarin je verzocht
Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:
Geen stijlvol programma: Complexe datastructuren Arrays vijf verschillende variabelen voor iets dat als één rij getallen bestempeld wordt; onbruikbaar wanneer het over meer getallen (bijvoorbeeld ) gaat.
Programmeermethoden NA. Week 6: Lijsten
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Functies Vorige week bekeken we functies: def bereken(a, x): return a * (x
Programmeermethoden NA
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder
Programmeermethoden NA. Week 10: NumPy, ipython, Python module showcase
Programmeermethoden NA Week 10: NumPy, ipython, Python module showcase Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ np.choice np.choice is niet beschikbaar in oude NumPy
Python voor Natuur- en Sterrenkundigen Week 2
Python voor Natuur- en Sterrenkundigen Week 2 Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pmpy2015/ Vorige week range() voor karakters: import string for c in string.lowercase: print
OEFENINGEN PYTHON REEKS 6
OEFENINGEN PYTHON REEKS 6 1. A) Schrijf een functie die een getal x en een getal y meekrijgt. De functie geeft de uitkomst van volgende bewerking als returnwaarde terug: x y x als x y x y y als x < y B)
Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.
Uitleg Welkom bij de Beverwedstrijd 2006 Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Je krijgt 5 vragen van niveau A, 5 vragen van niveau B en 5 vragen van niveau C. Wij denken
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Python voor Natuur- en Sterrenkundigen Week 1
Python voor Natuur- en Sterrenkundigen Week 1 Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pmpy2015/ Wat is Python & Waarom Python? "Scripttaal", ontworpen door Guido van Rossum eind
Syntax- (compile), runtime- en logische fouten Binaire operatoren
Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Informatica: C# WPO 10
Informatica: C# WPO 10 1. Inhoud 2D arrays, lijsten van arrays, NULL-values 2. Oefeningen Demo 1: Fill and print 2D array Demo 2: Fill and print list of array A: Matrix optelling A: Matrix * constante
Python voor dataanalyse
Python voor dataanalyse 5 De reden dat deze cursus gebruik maakt van Python is dat deze taal in technisch-wetenschappelijke kringen steeds vaker gebruikt wordt. Vooral voor het visualiseren en analyseren
algoritmiek - antwoorden
2016 algoritmiek - antwoorden F. Vonk versie 1 28-8-2016 inhoudsopgave eenvoudige algoritmes... - 3 - complexe algoritmes... - 7 - zoeken (vwo)... - 10 - sorteren (vwo)... - 12 - Dit werk is gelicenseerd
Informatica: C# WPO 12
Informatica: C# WPO 12 1. Inhoud Datacontainers, bestanden uitlezen, bestanden schrijven en data toevoegen aan en bestand, csv-bestanden 2. Oefeningen Demo 1: Point2D Demo 2: Notepad Demo 3: Read CSV-file
Informatica: C# WPO 13
Informatica: C# WPO 13 1. Inhoud Bestanden uitlezen, bestanden schrijven en data toevoegen aan een bestand, csv-bestanden 2. Oefeningen Demo 1: Notepad Demo 2: Read CSV-file Demo 3: Write CSV-file A: Plot
Inleiding MATLAB (2) november 2001
Inleiding MATLAB (2) Stefan Becuwe Johan Vervloet november 2 Octave gratis MATLAB kloon Min of meer MATLAB compatibel http://www.octave.org/ % Script PlotVb % % Plot regelmatige driehoek t/m tienhoek PlotVb.m
Informatica: C# WPO 11
Informatica: C# WPO 11 1. Inhoud Pass by reference (ref, out), recursie, code opdelen in verschillende codebestanden 2. Oefeningen Demo 1: Swapfunctie Demo 2: TryParse(int) Demo 3: Recursion Tree Demo
Een korte samenvatting van enkele FORTRAN opdrachten
Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5
Informatica: C# WPO 7
Informatica: C# WPO 7 1. Inhoud 1D-arrays, Lijsten 2. Oefeningen Demo 1: Vul de 1D-array Demo 2: Stringreplace Demo 3: Vul de lijst Demo 4: Debug oplossingen demo s 1, 2 en 3 A: Array reversal A: Gemiddelde
Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27
Programmeren 0. (1 punt.) Stel, een "afhankelijk kind" is een persoon is die jonger is dan 18 jaar, en hooguit 8.000 euro verdient. Welke van de onderstaande expressies definieert een afhankelijk kind?
Zoemzinnen. Algemene info. Functies met een variabel aantal argumenten
Zoemzinnen Functies met een variabel aantal argumenten Bij het definiëren van een functie leg je in principe vast hoeveel argumenten er aan de functie moeten doorgegeven worden. Dit aantal correspondeert
Functies van vectoren
Functies van vectoren Alexander Ly Psychological Methods University of Amsterdam 15 September 2014 Overview 1 Notatie 2 Overview 1 Notatie 2 Matrices Een matrix schrijven we vaak met een hoofdletter A.
Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014
Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE, 22 april 2014 Inleiding Cursus coördinator e-mail Docent e-mail : Jacco Hoekstra : [email protected] : Ingeborg Goddijn : [email protected]
SPOJ oplossingen Gilles Callebaut 7 augustus 2015
SPOJ oplossingen 2012-2013 Gilles Callebaut 7 augustus 2015 DISCLAIMER Oefeningen zijn niet altijd correct of optimaal. Gelieve de oefeningen enkel te gebruiken ter ondersteuning. Van kopiëren leer je
Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.
Spirograaf in Python Een kunstwerk maken Met programmeren kun je alles maken! Ook een kunstwerk! In deze les maken we zelf een kunstwerk met Python. Hiervoor zal je werken met herhalingen en variabelen.
Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )
OI 2010 Finale 12 Mei 2010 Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub VOORNAAM :....................................................... NAAM :..............................................................
Javascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
Programmeermethoden. Arrays (vervolg) Walter Kosters. week 8: 29 oktober 2 november kosterswa/pm/
Programmeermethoden Walter Kosters week 8: 29 oktober 2 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Programma 2018 Tweede deel week onderwerp boek dictaat 29 okt 2 nov 5 4.2,op37/43 5 9 nov
Programmeren (1) Examen NAAM:
Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord en Leonie Bosveld December 19, 2016 Vandaag Naar aanleiding van de opdrachten Zelle hoofdstuk 11 Boolean variabelen: niet checken met == Fout: if clicked == True
OEFENINGEN PYTHON REEKS 5
Vraag 1: Interpoleren (vervolg) OEFENINGEN PYTHON REEKS 5 Bouw verder op je code van Reeks 3, vraag 4. Voeg vier constanten toe aan je code: X0 = 280, Y0 = 0, Z0 = 50 en SIZE = 8. a) Teken een kubus met
NAAM: Programmeren 1 Examen 29/08/2012
Programmeren 29 augustus 202 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je
Variabelen en statements in ActionScript
Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer
Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.
een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code
Programmeermethoden NA
Programmeermethoden NA Week 4: Files & Functies Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Vorige week: Controlestructuren # gegeven # 0
Hoofdstuk 7: Werken met arrays
Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel
extra oefening algoritmiek - antwoorden
extra oefening algoritmiek - antwoorden opgave "Formule 1" Maak een programma dat de gebruiker drie getal A, B en C in laat voeren. De gebruiker zorgt ervoor dat er positieve gehele getallen worden ingevoerd.
3. Structuren in de taal
3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we
1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.
1.0 Voorkennis Voorbeeld 1: Los op: 6x + 28 = 30 10x. 6x + 28 = 30 10x +10x +10x 16x + 28 = 30-28 -28 16x = 2 :16 :16 x = 2 1 16 8 Stappenplan: 1) Zorg dat alles met x links van het = teken komt te staan;
HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren
HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet
Gebruikershandleiding
Release 1.3 Gebruikershandleiding Datum: oktober 2012 All rights reserved Alle rechten zijn voorbehouden. Deze documentatie blijft eigendom van Ternair Software Solutions b.v. en is uitsluitend bedoeld
[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje:
[14] Functies Een goede programmeur doet altijd zijn best om zoveel mogelijk aan hergebruik van code te doen. Je probeert in je programma code te gebruiken die iemand anders heeft gemaakt, of code die
MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara
MINICURSUS PHP Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2017-2018 Sebastiaan Franken en Rosalie de Klerk Bambara PHP Cursus Deze cursus is om de eerste stappen in de wereld
Algoritmen en programmeren: deel 2 - basis
Algoritmen en programmeren: deel 2 - basis Ruud van Damme Creation date: 25 april 2005 Update: 16 november 2006, 9 september 2007 Overzicht 1 Basisbenodigdheden voor alle problemen 2 Alles in stukjes op
INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13
INHOUDSOPGAVE Over de auteur, de illustrator en de technische redacteuren 13 Dankwoord 14 Inleiding 15 Waarom Python?... 16 Hoe je code leert schrijven... 16 Voor wie is dit boek... 17 Wat staat er in
Programmeermethoden. Talen: Java, Qt, Python,... Walter Kosters. week 14: december
Programmeermethoden Talen: Java, Qt, Python,... Walter Kosters week 14: 11 15 december 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ www.mathworks.com, www.java.com, www.qt.io, www.python.org en www.appinventor.mit.edu
POD1 - Hoofdstuk 1: Inleiding
POD1 - Hoofdstuk 1: Inleiding 2/59 POD1 - Hoofdstuk 1: Inleiding Stijn Lievens ([email protected]) Noemie Slaats ([email protected]) Lieven Smits ([email protected]) Martine Van Der Weeen
Release notes Swing 5.0.6 & 5.0.7
Release notes Swing 5.0.6 & 5.0.7 Copyright 2016 Swing Jive Swing is een product van ABF Research Jive Full screen weergave Swing 5 beschikt nu ook over een full screen weergave. Deze is te activeren via
Het tsv-bestand gaan we nu inlezen in Coach. Open Coach; log in als docent; kies nieuwe activiteit ; meten. (Je hoeft geen meetpaneel te kiezen.
Data analyse HiSPARC Analyse met Coach C.G.N. van Veen 1 Inleiding Dit werkblad helpt leerlingen en docenten om data analyse van HiSPARC met het software pakket Coach (6 of 7) te doen. Coach (6 of 7) is
Programmeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Voorbeelden. Sorteren. Voorbeeld: n = 5. # intsort.py: sorteren van een rij getallen
Voorbeelden Sorteren Schrijf een programma dat een rij gehele getallen sorteert een eerste functie leest de rij gehele getallen; een tweede functie sorteert deze getallenrij van klein naar groot; een derde
Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 8 mei 2014
Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE, 8 mei 2014 Bijeenkomst 6 Onderwerp Tips met betrekking tot debuggen Animaties, simulaties en spellen Pygame: de basis 8 mei 2014 1 Algemene
OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.
Les C-02: Werken met Programma Structuur Diagrammen 2.0 Inleiding In deze lesbrief bekijken we een methode om een algoritme zodanig structuur te geven dat er gemakkelijk programmacode bij te schrijven
Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
Persistentie via bestanden. Bestanden
programma is transient Persistentie via bestanden Administratieve gegevens zijn verzameld in het file-object: o.a. waar ergens op de disk de data van het bestand te vinden is. invoer van de gebruiker programma
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
Niet-numerieke data-types
Intern wordt een karakter voorgesteld als een rij van acht bits, Niet-numerieke data-types string de letter a 01100001 0110 0001 0x61 97 Bij interpretatie van de inhoud van een byte als een geheel getal,
Bijlage Inlezen nieuwe tarieven per verzekeraar
! Bijlage inlezen nieuwe tarieven (vanaf 3.2) Bijlage Inlezen nieuwe tarieven per verzekeraar Scipio 3.303 biedt ondersteuning om gebruikers alle tarieven van de verschillende verzekeraars in één keer
Programmeermethoden NA. Week 3: Controlestructuren
Programmeermethoden NA Week 3: Controlestructuren Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Inleveren opdracht 1 Lever digitaal sxxxxxxx-syyyyyyy-opdr1.py
Handleiding Excel. bij. hoofdstuk 18 Cijfers in Orde Wageningse Methode
Handleiding Excel bij hoofdstuk 18 Cijfers in Orde Wageningse Methode oktober 2008 1 Excel (Nederlandtalig) Excel is een programma dat snel allerlei berekeningen kan uitvoeren. Ook kan het programma gemakkelijk
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten
Blog-Het gebruik van variabelen in Excel VBA
Blog-Het gebruik van variabelen in Excel VBA Versie : 2012.01.31.1 (Blog http://www.reinder.eu) Dank voor de leuke reacties op het vorige blog en ook dank voor de kritische noot over het nivo dat de gebruiker
OEFENINGEN PYTHON REEKS 1
Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren
Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.
1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 19, 2018 Overzicht Grafische programma s en tekstgebaseerde programma s Stijladviezen (Jeff Knupp, Writing Idiomatic Python) File Processing (Zelle 5.9.2)
Algemeen. Rorschachtest. Algemene info
Algemeen Als Python de volgende regel moet lezen uit een tekstbestand, dan wordt er gelezen tot en met de eerstvolgende newline ('\n') of tot het einde van het bestand. Het laatste karakter van de regel
BEGINNER JAVA Inhoudsopgave
Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire
Grafieken in Word. Soort 1 2 5 10 12 15 20 30 Leven 4,8 4,9 5,1 5,5 5,6 5,8 6,0 6,2 Annuïteiten 4,9 5,1 5,3 5,7 5,8 6,0 6,2 6,5
Les 16 Grafieken in Word In deze les leert u hoe u gegevens weergeeft in de vorm van een grafiek. Ook past u het uiterlijk, de schaal en het type grafiek aan. Een grafiek maken Eén plaatje zegt meer dan
Achtste college algoritmiek. 8 april Dynamisch Programmeren
Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst
Hoofdstuk 2: Werken met variabelen
Programmeren in Microsoft Visual Basic 2010 Express, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Vespucci College, Marnix Gymnasium Rotterdam, december 2011 Hoofdstuk
Een spoedcursus python
Een spoedcursus python Zoals je in de titel misschien al gezien hebt, geven wij een spoedcursus Python. Door deze cursus leer je alle basics, zoals het rekenen met Python en het gebruik van strings. Het
[8] De ene 1 is de andere niet
[8] De ene 1 is de andere niet Volg mee via 08_Types.py In de volgende leerfiche gaan we rekenen met Python. Dat kan je in een programma doen, maar dat kan je ook gewoon vanuit het Shell-venster doen.
Addendum Syllabus Programmeren voor Natuuren Sterrenkunde /17: Opdracht 10
1 Addendum Syllabus Programmeren voor Natuuren Sterrenkunde 2 2016/17: Opdracht 10 May 12, 2017 Dit document bevat de standaard -opdracht van opdracht 10 van de cursus Programmeren voor Natuur- en Sterrenkunde
Interne voorstelling. types en conversies. Binaire en andere talstelsels. Voorstelling van gegevens: bits en bytes
Interne voorstelling types en conversies Het geheugen wordt ingedeeld in een aantal gebieden van gelijke grootte. Een gebied van 8 bits noemt men een byte (nible een groep van bits). Een (computer)woord
Pythoncursus. Opdrachtenserie 3. Tanja, Koen en Marein oktober Opdracht 1 - Turtlegraphics
Pythoncursus Opdrachtenserie 3 Tanja, Koen en Marein oktober 2018 Opdracht 1 - Turtlegraphics In deze opdracht gaan we tekenen! Hiervoor gebruiken we de library turtlegraphics, waarmee je met Python een
Handleiding Importeren/ Exporteren Brouwvisie (& pro)
Handleiding Importeren/ Exporteren Brouwvisie (& pro) Document : Handleiding Importeren/Exporteren Brouwvisie (& Pro) Versie : 1.0 Datum : Dinsdag 16 April 2019 Auteur : Oscar Moerman 1 Inhoud 1. Inleiding...
Lineaire afbeeldingen
Les 2 Lineaire afbeeldingen Als een robot bij de robocup (het voetbaltoernooi voor robots een doelpunt wil maken moet hij eerst in de goede positie komen, d.w.z. geschikt achter de bal staan. Hiervoor
Uitwerkingen Lineaire Algebra I (wiskundigen) 22 januari, 2015
Uitwerkingen Lineaire Algebra I (wiskundigen) januari, 5 In deze uitwerkingen is hier en daar een berekening weggelaten (bijvoorbeeld het bepalen van de kern van een matrix) die uiteraard op het tentamen
