Python er hurtigt ved at blive det mest populære og anvendte sprog i verdenen til bl.a. data science og maskinelæring (se bare stats fra tiobe index og red monk). Det er relativt hurtigt og har et kæmpe økosystem (100.000+) pakker, som gør os i stand til at lave stort set alt med sproget. Nærværende github repository, beskriver et kursus/forløb i Python og data science. Vi forudsætter, at du allerede har et vist kendskab til programmering, som du får i eksempelvis i forløbet om "Introduktion til programmering i P5.js". Forløbet starter med en brushup til python og hvordan det adskiller sig fra eksempelvis javascript. Det er en forudsætning for at kunne arbejde med videregående emner som maskinelæring, data science og AI.
God arbejdslyst.
Mvh. Henrik Sterner og Peter Sterner
Vi bruger uddrag af følgende to gratis og opensource bøger af af Jake Vanderplas:
- (PY) A Whirlwind Tour of Python.
- (DI) Dive into Deep Learning.
- Øvelser
- [Noter] (https://github.com/HenrikSterner/PythonForDataScience/tree/master/noter)
- [AdvPy] (https://python-course.eu/advanced-python/)
Bøgerne er gratis, og rummer en række kapitler i jupyter-formatet, som gør det muligt at kombinere tekst og kode. Derudover vil der være uddrag fra andre bøger og internet ressourcer.
Kurset benytter følgende software (python er inkl. i Anaconda ligesom numpy, scikit, matplotlib, streamlit etc.)
- [Anaconda] (https://www.anaconda.com/products/individual)
- [Jupyter-plugin til Visual Studio Code] (https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter). Kan bare hentes under plugin i vscode.
- [pyp5js] (https://berinhard.github.io/pyp5js/)
Herunder en tentativ plan for undervisningen, der opdateres undervejs. Øvelser refererer til numre i øvelsesdokumentet exercises.ipynb. Lav øvelserne i den rækkefølge som de står. Lav så mange som overhovedet muligt. Den eneste måde at blive god til faget er ved at øve sig regelmæssigt og så meget som overhovedet muligt. Træning gør mester! Gå ikke videre før du har styr på det fundamentale.
| Modul Nr | Kapitel | Indhold | Øvelser |
|---|---|---|---|
| 1 | PY: 1,2,3 | Intro til python og jupyter | Installere og afprøve software |
| 2 | PY: 4 og 5 | Variabler og operatorer | 1-6 |
| 3 | PY: 6 og 7 | Indbyggede typer og datastrukturer | 7-14 |
| 4 | PY: 8 og 11 | Løkker og betinget udførsel | 21-27 |
| 5 | PY: 9 | Funktioner | 33 |
| 6 | Øvelse | WebApps og GUIs | 41,42 |
| 7 | PY: 10 | Undtagelser | 32 |
| 8 | PY: 11-12 | Operationer på lister | 34, 35, 28 |
| 9 | PY: 14 | Moduler og pakker | 37 |
| 10 | PY: 15 | Strenge oglidt om regulære udtryk | 36, 29, 30 |
| 11 | Noter | Objektorienteret programmering og principperne bag | 38, 39, 40 |
| 12 | PY11, AdvPy:5 | Videregående Python: Zip funktionen | 49 |
| 13 | PY11, AdvPy:4 | Videregående Python: Lambda udtryk | 50 |
| 14 | PY11, AdvPy:4 | Videregående Python: filter funktion | 53 |
| 15 | PY11, AdvPy:4 | Videregående Python: map funktion | 52 |
| 16 | PY11, AdvPy:4 | Videregående Python: reduce funktion | 54 |
| 17 | PY11, AdvPy:6 | Videregående Python: Decorators | |
| 18 | PY11, AdvPy:10-11 | Videregående Python: Tests, docTests, UnitTests, PyTests | |
| 19 | PY11, AdvPy:12-13 | Videregående Python: Regulære udtryk | |
| 20 | PY11, AdvPy:12-13 | Videregående Python: Tråde og parallellisering | 51 |
| Modul Nr | Kapitel | Indhold | Øvelser |
|---|---|---|---|
| D1 | PY: 16, DI: 1 | Indledende data science og maskinelæring | Se 1.9 i DI:1 |
| D2 | DI: 2 | Introduktion til vigtig baggrundsstof fra matematik og statistik | Øvelser i 2.1-2.7 i DI:2 |
| D3 | PY: 16 | Introduktion til numpy, scipy, matplotlib | 43-47 |
| D4 | DI: 3 | Introduktion til maskinelæring: Linært neurale netværk | Øvelser i 3 i DI:3 |
| D5 | DI: 4 | Introduktion til multilinære perceptroner | |
| D6 | DI: 5 | Dyb læring | |
| D7, | DI: 6 og 7 | Convolutional neurale netværk | |
| D8 | På vej | Supervised læring: Lineær/logistisk regression, kNN, SVM (og beslutningstræer) | |
| D9 | På vej | Unsupervised læring: kMeans, neurale netværk | |
| D10 | På vej | Reinforceret læring |