Python-Einführung

Werbung
Interdisziplinärer Einsatz von IPython Notebooks
Eine Einführung in Python
S. Schöneberg
2014-12-16
Why did it have to be snakes?
Schöneberg
Python
•
interpretierte Sprache (d.h. braucht Interpreter zum ausführen)
X
Plattformunabhängig
X
Häuge Probleme einfach lösbar
(X)
X
Schwierige Probleme ezient lösbar
Existierender, externer Code einfach einzubinden
Python mit vielen Modulen vorkonguriert gibt's hier:
http://continuum.io/downloads
Schöneberg
iPython notebooks
notebooks
interaktive Python-Umgebung im Browser
bietet Syntax highlighting, autocompletion
erlaubt relativ einfaches Speichern einer Python Sitzung
gut geignet für prototyping oder Lehre/Lernen
Schöneberg
Variablentypen
Elementare Variablentypen
∗5=0
≈ 2−300 − 2300
int
Ganzzahl
Division ohne Rest, z.B. 1/5
oat
Gleitkommazahl
Wertebereich
maschinenabhängig
string
Zeichenfolge
Duck typing
Variablen werden danach unterschieden, was sie tun oder können,
nicht welchen Typ sie haben
Schöneberg
Module
Python ist modular
Modulname
Inhalt
numpy
Arrays, Lineare Algebra
scipy
Integration, Interpolation, Optimisation
matplotlib
Plotten
Schöneberg
Sequences
Sequences
Sequences sind Sammlungen von Variablen, mit unterschiedlicher
Syntax und Eigenschaften, alle erlauben es über die items
(Elemente) zu iterieren
Sequences
tuple
statische Einträge
list
veränderliche Einträge
numpy.array
alle Einträge vom selben Typ, Rechenoperationen
(insb. * und **) elementweise
Schöneberg
Kontrollstrukturen
for-Schleifen
In Python nur for-each-Schleifen, iterieren über jedes item einer
sequence und führen für dieses item die Befehle im Schleifenkörper
aus.
if-Abfragen
Führt den folgenden code Block nur aus, wenn die Bedingung
erfüllt ist. Caveat: Vergleiche wie z.B.
sequences nicht eindeutig.
Schöneberg
≤
sind für arrays und andere
Funktionen I
Zuordnungsvorschrift
x → f (x )
Funktionen in Python prinzipiell ähnlich
Schöneberg
Funktionen II
Schöneberg
Numerische Integration in Python
Zur Erinnerung: Riemann bzw. Darboux-Integral
Schöneberg
Numerische Integration in Python
1
Diskrete Stützstellen über
das Intervall verteilen
2
Funktion zwischen den
Stützstellen approximieren
3
Fläche in jedem Teilstück
berechnen
4
Schöneberg
Aufsummieren
Uneigentliche Integrale
Was tun mit Integralen mit Grenze
Z
∞
f (x )dx
1
Z
b
a
gilt nur wenn
ab > 0
f (x )dx =
und
lim
∞?
x →∞
Z
1/a
1/b
1
t2
f
f (x ) x 2 = 0
Schöneberg
1
t
dt
Output für Fortgeschrittene
Schöneberg
Programmierstil
Style Guide
https://www.Python.org/dev/peps/pep-0008
Guter Stil macht das Leben leicher!
Sprechende Funktions- und Variablennamen, z.B.
plotDistribution(energy, counts) statt doStu(a, b)
Einheitliche Schreibweise, wenn CamelCase dann überall, oder
lower_case_with_underscores, aber nicht mischen
Kommentare helfen, z.B. für Einheiten
Schöneberg
Literaturempfehlungen
nr.com
Python.org
scipy.org
http://matplotlib.org/
http://stackoverow.com/
Schöneberg
Weitere Module
Modulname
Inhalt
numpy
Arrays, Lineare Algebra
scipy
Integration, Interpolation, Optimisation
matplotlib
Plots
scikit-learn
Machine Learning
decimal
Flieÿkommazahlen mit gröÿerem Wertebereich und
(fast) beliebiger Präzision
sympy
Symbolische Operationen à la Mathematica
Pandas
Tabellen, Statistik
h5py
HDF5-Daten Zugri
PyROOT
ROOT Zugri
PyFITS
Zugri für FITS Dateien (Standardformat
in der Astronomie)
Schöneberg
Herunterladen