{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"# Computergestützte Datenauswertung\n",
"**Institut für Experimentelle Teilchenphysik (ETP)**
\n",
"**Institut für Theorie der Kondensierten Materie (TKM)**
\n",
"Prof. Dr. Torben Ferber (ETP)
\n",
"Dr. Nils Faltermann (ETP), Dr. Andreas Poenicke (TKM), Alexander Heidelbach (ETP)
\n",
"[Ilias Seite zum Kurs](https://ilias.studium.kit.edu/ilias.php?ref_id=2067677&cmd=frameset&cmdClass=ilrepositorygui&cmdNode=x0&baseClass=ilrepositorygui)
\n",
"Sommersemester 2023 – Blatt 01
\n",
"Abgabe: Montag, 24.04.2023, 10:00 Uhr (online & freiwillig)\n",
"\n",
"---"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Das erste Übungsblatt dient dem Vertrautmachen mit *Jupyter* Notebooks und *Python*. \n",
"Hier sollen Sie sich mit Ihrer Arbeitsumgebung auseinandersetzen und gegebenenfalls mit Ihrem Tutor Schwierigkeiten besprechen. \n",
"Sollten Sie ein etwas ausführlicheres *Python* Tutorial zum Erlangen, Vertiefen oder Auffrischen Ihrer *Python*-Kenntnisse benötigen, finden Sie [hier](https://git.scc.kit.edu/yh5078/datenanalyse/-/blob/master/jupyter/PythonIntro.ipynb) ein *Jupyter* Notebook, welches Sie gerne auf freiwilliger Basis durcharbeiten können.\n",
"\n",
"Zunächst noch einige ergänzende Worte zu der Umgebung:
\n",
"Die Umgebung, in der Sie hier arbeiten, wird als *Jupyter* Notebook bezeichnet. \n",
"*Jupyter* Notebooks sind Dateien vom Typ *.ipynb*, die sowohl erklärenden Text als auch Anweisungen für den Computer enthalten. \n",
"*Jupyter* bietet eine Browser-Schnittstelle mit einer (einfachen) Entwicklungsumgebung für Anweisungen in der Sprache *Python* und erklärende Texte im intuitiven *Markdown*-Format. \n",
"Die Eingabe von Formeln im $\\LaTeX$-Format zur komfortablen und grafisch ansprechenden Gestaltung von Formeln wird ebenfalls unterstützt. \n",
"\n",
"Die *Jupyter*-Oberfläche lässt sich zwar komplett mit der Maus bedienen, viel effizienter ist es allerdings, nach einiger Eingewöhnung die Tastatur zu benutzen. \n",
"Eine kleine Liste an Tastenkürzeln (genannt \"*Jupyter*-Shortcuts\") ist hier - als Tabelle im *Markdown*-Format:\n",
"\n",
" Modus | Befehl | Aktion |\n",
":-----------------|:------------------|:--------------------------------------------|\n",
"**A**llgemein | `esc` | verlässt Editiermodus |\n",
" A | `enter` | geht in Editiermodus | \n",
"**E**ditiermodus | `shift` + `enter` | führt Zelle aus und geht zur nächsten |\n",
" E | `ctrl` + `enter` | führt Zelle aus |\n",
"**K**ommandomodus | `d,d` | löscht aktuelle Zelle |\n",
" K | `z` | macht Zellenlöschung rückgängig |\n",
" K | `a` | fügt neue Zelle überhalb der aktuellen ein |\n",
" K | `b` | fügt neue Zelle unterhalb der aktuellen ein |\n",
" K | `m` | ändert zu Markdown |\n",
" K | `y` | ändert zu Code |\n",
"\n",
"\n",
"Durch Doppelklick in diese Zelle sehen Sie den eingegebenen Text, wenn Sie `shift` + `enter` eingeben, wird die Zelle formatiert und Sie sehen eine schön gesetzte Tabelle. \n",
"\n",
"Bitte ausprobieren! "
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Beispiel eines Jupyter-Notebooks\n",
"\n",
"Dies ist ein Text-Block (\"Markdown\"), hier kann man formatierten Text schreiben (z.B. $\\LaTeX$), welcher dann entsprechend dargestellt wird.\n",
"\n",
"Weiter unten befinden sich mehrere Code-Blöcke (\"Code\"), darin stehen die Python-Anweisungen, welche ausgeführt werden sollen.\n",
"\n",
"Führen Sie jede Zelle des Notebooks aus ($\\blacktriangleright$), wenn alles funktioniert hat, sehen Sie am Ende den Graph einer Ihnen bereits bekannten Funktion. \n",
"Die Bedeutung der einzelnen Befehle lernen Sie noch in der Vorlesung."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Import weiterer Python-Module"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Definition einer Funktion"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"t = np.arange(0.0, 2.0, 0.01)\n",
"s = 1 + np.sin(2 * np.pi * t)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plotten der Funktion"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"fig, ax = plt.subplots()\n",
"ax.plot(t, s)\n",
"ax.set(xlabel='time (s)', ylabel='voltage (mV)', title='example')\n",
"ax.grid()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}