Tema for uke 4 er kapittel 5 i l?reboka, om plotting og array-beregninger (vektor-beregninger). Hovedpunktene er som f?lger:
- Til nå har vi brukt lister til å ta vare på lange rekker av tall og andre datatyper. Lister er veldig fleksible, men løkker over lange lister gir treg kode. Numpy er en Python-pakke som introduserer arrayer, og vektoriserte beregninger over arrayer. Numpy-arrayer er mindre fleksible enn lister, men mye mer effektive for å gjøre store beregninger. Koden kan også ofte skrives kortere og mer lesbar.
- Pakken matplotlib inneholder et stort antall funksjoner for plotting av ulike data. Vi skal bruke matplotlib til plotting av kurver, og til å lage filmer med animerte kurveplott.
L?ringsm?l for uke 4:
- Forstå de viktigste forskjellene mellom numpy-arrayer og lister
- Kunne lage numpy-arrayer (spesielt linspace), bruke dem i beregninger, hente ut og endre array-elementer, array-slicing, og liknende enkle operasjoner på arrayer.
- Kunne bruke matplotlib.pyplot til å plotte en eller flere kurver, med tilhørende titler og merker, samt lage animasjoner av kurveplott.
Oppgaver gjennomg?tt: Vi rakk ikke gjennom alle oppgavene som var satt opp denne uken. Oppgave 4.4-4.6 ble gjennomg?tt, samt oppgave 5.6 og 5.9-5.11. Oppgave 4.7 er veldig lik 4.6 og regnes som selvstudium. Oppgave 5.6 er ogs? mer egnet for selvstudium enn l?sning i plenum, og oppgave 5.13 er ganske lik 5.9 (plott av en enkelt kurve), men med tre parametre som skal leses fra kommandolinjen p? samme m?te som i oppgave 5.10. B?de oppgave 5.7 og 5.11 regnes som selvstudium, alle l?sningene er lagt ut p? nett. Eksempelet fra foilene, om animasjon av Gauss-funksjonen, er ogs? lagt ut samme sted.
Foiler gjennomg?tt p? forelesningene:
- Foilene som h?rer til l?reboka fokuserer mest p? bruk av scitools for plotting. Vi bruker prim?rt matplotlib i INF1100, og jeg har derfor laget et oppdatert foilsett for kapittel 5, hvor alle kode-eksempler er endret til ? bruke matplotlib. Forskjellene er sm?, men viktige. I l?reboka inkluderer de fleste eksemplene kode for b?de matplotlib og scitools. I det oppdaterte foilsetttet har f?lgende blitt gjennomg?tt:
- Slide 1-17 Om vektorisering og numpy, samt enkel plotting i matplotlib. Alt dette er viktig stoff.
- Slide 18-19 Dette handler mest om scitools, som ikke er viktig for kurset i h?st.
- Slide 20-23 Plotting av flere kurver i matplotlib. Dette er viktig.
- Slide 24-25 Bruk av eval til ? plotte en funksjon som oppgis p? kommandolinjen. Dette er ikke veldig viktig, men et fint eksempel ? se p? for ? forst? bruk av eval-funksjonen.
- Slide 26-33 Om animasjoner med matplotlib. F?rste del (26-29), om hvordan vi kan generere og lagre mange plott som bildefiler, er viktig. Resten (30-33) handler om verkt?y for ? lage filmer av bildefiler. Hvilke verkt?y som kan brukes avhenger av om man bruker Windows, Mac eller Linux, og bruk av disse verkt?yene er ikke relevant til eksamen. De er likevel nyttige til senere ukeoppgaver, og det anbefales ? teste dem ut.
- Slide 34-42 F?rste del er viktig, om problemer med bruk av if-tester i vektoriserte beregninger. Dette ble delvis gjennomg?tt p? forelesning 22 september, og resten vil bli gjennomg?tt 29 september. Siste del av eksempelet er mindre viktig, men er nyttig ? lese for ? f? bedre forst?else av plotting i matplotlib.
- Slide 43-48 om nyttige array-operasjoner. Dette er viktig, men stort sett opplisting av nyttige funksjoner, s? disse foilene er selvstudium. Spesielt 43, 47 og 48 er viktige.
- Slide 49-50 er ogs? selvstudium. Slicing i arrayer er stort sett likt slicing i lister.
- Slide 51-56 om todimensjonale arrayer er viktig, og vil bli g?tt gjennom raskt i starten av forelesningen 29 sept. Det anbefales ? se p? disse foilene f?r forelesningen, siden vi kommer til ? g? veldig raskt gjennom dem p? forelesningen.
- Slide 57-61 er sammendrag av vektorisering, arrayer og plotting. Dette er (som vanlig) selvstudium.
- Slide 62-63 A summarizing example er basert p? scitools (ogs? i l?reboka), som er mindre relevant. Det anbefales i stedet ? se p? eksempelet animasjoner p? slide 26-29, og eventuelt bytte ut funksjonen i det eksempelet med funksjonen som brukes i A summarizing example, eventuelt en annen, selvvalgt funksjon.