Aufgabensammlung-2020-11-11¶
allgemein Python¶
Gegeben:
verschiedene Datums- und Zeitangaben, z.B. “02/11/2020”, “2020-11-02” etc.
Gesucht:
Datum als Datum erkennen, in Epoch Unix Time Stamp umwandeln
Gegeben:
Datum im Epoch Unix Time Stamp
Gesucht: Datum mit print()
menschenlesbar drucken
basic, auch mit Parameter sep=’separator’ und end=’end’
“old school”: %-formatting (auch anschlussfähig für C-Umsteiger)
f-Strings
Tutorial: siehe https://realpython.com/python-f-strings/
Gegeben:
ein Satz, z.B. “to be or not to be”
Gesucht:
Häufigkeit jedes Buchstabens.
Welche Buchstaben kommen vor?
Welche Buchstaben kommen - bezogen auf die Klein- und Großbuchstaben des deutschen Alphabets - nicht vor?
Gegeben: ein String.
Gesucht:
Funktion: Ist der String ein Palindrom?
Gegeben:
ein Satz, z.B. “to be or not to be”
Liste Y mit sog. Stop-Wörtern, z.B. [ “der”, “die”, “das”, “und”]
Gesucht:
der Satz als Liste von Wörtern
der Satz als Liste von Wörtern ohne Stopwörter
Gegeben:
Ein Text mit mehreren Sätzen, z.B. Viel_o_Sophie_Korpus
Viel_o_Sophie_Korpus = [ "Viel o", "vieh sophie", "o so", "so viel", "viel o", "vieh sophie", "so o", "o so", "so viel", "vieh vieh", "sophie o", "o sophie", "sophie so", "so viel", "solo o", "sophie sophie" ]
(Quelle: https://www.life-science-lab.org/cms/index.php/ernst-jandl.html)
Gesucht:
Welche Wörter kommen überhaupt vor?
Wie oft kommen die Wörter insgesamt vor?
Häufigkeit der einzelnen Wörter getrennt für jeden Satz.
Dicts und Listen¶
Gegeben:
ein Dictionary mit Häufigkeitszählungen von Wörtern, z.B. { “so”: 3, “viel”: 2, “vieh”: 3 … }
Gesucht:
das häufigste und das seltenste Wort dieses Dictionaries
dieses Dictionary ohne Wörter, die nur einmal vorkommen
alle Wörter dieses Dictionaries als Liste
alle Häufigkeiten dieses Dictionaries als Liste
Gegeben:
Ein Dictionary, das Buchstaben auf Zahlen abbildet, z.B. {‘a’: 1, ‘b’: 3, ‘c’: 2, ‘d’: 1}
Gesucht:
Ein Dictionary, das diese Zahlen auf Buchstaben abbildet (sozusagen die Invers-Funktion). Falls mehrere Buchstaben auf dieselbe Zahl zeigen, zeigt umgekehrt diese Zahl auf einen String, der alle zugehörigen Buchstaben enthält, also z.B. { 1: ‘ad’, 3: ‘b’, 2: ‘c’ }
Gegeben: Liste von Strings.
Gesucht:
Welche Strings sind Palindrome?
Ergebnis: Liste von True oder False
Gegeben:
eine Liste von Integern, z.B. [ 1, 3, 2, 42, -100]
Gesucht:
eine Liste der Quadrate dieser Integers
eine Liste der aggregierten Summen dieser Integers, z.B. [ 1, 4, 6, 48, -52]
eine Liste von Paaren dieser Listen, z.B. [ (1,1), (3,4), … (-100,52) ]
Gegeben:
Eine Liste von als String dargestellten Datensätzen, in denen einzelne Uhrzeiten und Temperatur-Messungen durch Strichpunkte getrennt sind (CSV-Datei), z.B. [ “09:00; 16”, “10:00; 18”, “11:00; 21.5”, … “21:00; 19.2”, “22:00; 18.0” ]
Gesucht:
die Liste als Dictionary von Uhrzeit und Wert
der Mittelwert aller Temperaturen an diesem Tag
ab welchem Zeitpunkt wurden 20 Grad Celsius überschritten?
Gegeben: Ein Datensatz als Liste von Messungen (“row-wise matrix”, “Reihe-Spalte-Matrix” ), z.B. Alter des Kindes, Gewicht, Größe (Quelle: http://www.gbe-bund.de/oowa921-install/servlet/oowa/aw92/dboowasys921.xwdevkit/xwd_init?gbe.isgbetol/xs_start_neu/&p_aid=3&p_aid=49508598&nummer=223&p_sprache=D&p_indsp=-&p_aid=97056998)
[
#[ Alter, Größe, Gewicht ]
[ 1, 0.67, 7.6 ],
[ 2, 0.83, 11.6 ],
[ 3, 0.93, 14.1 ],
[ 4, 1.01, 16.2 ],
[ 5, 1.08, 18.5 ],
[ 6, 1.15, 20.8 ],
[ 7, 1.22, 23.6 ],
]
Gesucht: Datensatz als als “column-wise matrix” (“Spalte-Reihe-Matrix”). Mathematisch wäre das die Transposition der Ausgans-Matrix, z.B.
[
# Alter
[ 1, 2, 3 ... ],
# Größe
[ 0.67, 0.83, 0.93, ...],
# Gewicht
[ 7.6, 11.6, 14.1, ...],
]
https://www.programiz.com/python-programming/list-comprehension : matrix = [[1, 2], [3,4], [5,6], [7,8]] transpose = [[row[i] for row in matrix] for i in range(2)] print (transpose)
Gegeben:
Spalte einer Matrix, gegeben als Liste vom Zahlen
Gesucht:
Mittelwert und Standardabweichung (Quadratwurzel der Varianz, siehe Wikipedia)
normalisierte Liste: Verschiebung und Kompression der Zahlen auf das Intervall 0 .. 1 (https://www.statsoft.de/glossary/N/Normalization.htm)
standardisierte Liste (“Transformation von Daten durch Subtraktion jedes Werts von einem Referenzwert (typischerweise einem Stichproben-Mittelwert) und Division durch die Standardabweichung (typischerweise eine Stichproben-Standardabweichung”, https://www.statsoft.de/glossary/S/Standardization.htm).
Gegeben:
ein dict d
gesucht:
iteriere durch das dict
2 Lösunen:
for k, v in d.items() # preferred
for k in d.keys() # antipattern!
Gegeben: zwei dicts, z.B.
x = {'a': 1, 'b': 2}
y = {'b': 10, 'c': 21}
Gesucht:
ein neues dict z als Vereinigung von x und y; redundante Werte von y überschreiben x, z.B.
{'a': 1, 'b': 10, 'c': 21}
Daten laden¶
Gegeben:
eine gezippte CSV-Datei in einem Schwester-Verzeichnis
gesucht:
als DataFrame mit relativem Pfad einlesen
ohne sie vorher zu entzippen
erzeuge Train-Test-Split
Gegeben:
4 CSV-Dateien, nämlich X_train, y_train, X_test, \y_test
zusammenfügen zu einem kompletten df
Exploration¶
Welche Attribute gibt es?
Von welchem Typ sind die Attribute?
describe() ohne / mit kategorialen Attributen
Missing values:
in welchen Spalten?
selten, häufig?
Beschreibe möglichst viele Methoden, um mit missing values zu arbeiten!
graphische Exploration mit Seaborn¶
einzelne Variablen: line, bar u.A.
je 2-3 Variablen gegeneinander: scatter, heatmap u.A.
komplexere Plots
Feature Engineering¶
Normalisierung
Standardisierung (Unterschied zu Normalisierung?)
erzeuge neue Features