{ "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 }