9  Lernzielkontrolle

Herzlich willkommen zur Lernzielkontrolle!

Diese Selbstlernkontrolle dient dazu, Ihr Verständnis der bisher behandelten Themen zu überprüfen und Ihnen die Möglichkeit zu geben, Ihren Lernfortschritt eigenständig zu bewerten. Sie ist so konzipiert, dass Sie Ihre Stärken und Schwächen erkennen und gezielt an den Bereichen arbeiten können, die noch verbessert werden müssen.

Es stehen hier zwei Möglichkeiten zur Verfügung ihr Wissen zu prüfen. Sie können das Quiz benutzen, welches Sie automatisch durch die verschiedenen Themen führt. ALternativ finden Sie darunter normale Frage wie Sie bisher im Skript verwendet wurden.

Bitte nehmen Sie sich ausreichend Zeit für die Bearbeitung der Fragen und gehen Sie diese in Ruhe durch. Seien Sie ehrlich zu sich selbst und versuchen Sie, die Aufgaben ohne Hilfsmittel zu lösen, um ein realistisches Bild Ihres aktuellen Wissensstands zu erhalten. Sollten Sie bei einer Frage Schwierigkeiten haben, ist dies ein Hinweis darauf, dass Sie in diesem Bereich noch weiter üben sollten.

Viel Erfolg bei der Bearbeitung und beim weiteren Lernen!

Aufgabe 1

Wie wird das NumPy-Paket typischerweise eingebunden?

Aufgabe 2

Erstellen Sie mit Hilfe von NumPy die folgenden Arrays:

  1. Erstellen sie aus der Liste [1, 2, 3] ein numPy Array
  2. Ein eindimensionales Array, das die Zahlen von 0 bis 9 enthält.
  3. Ein zweidimensionales Array der Form 3×33×3, das nur aus Einsen besteht.
  4. Ein eindimensionales Array, das die Zahlen von 10 bis 50 (einschließlich) in Schritten von 5 enthält.

Aufgabe 3

Was ist der Unterschied zwischenden den Funktionen np.ndim, np.shape und np.size

Aufgabe 4

Welchen Datentyp besitzt folgendes Array? Mit welcher Funktion kann ich den Datentypen eines Arrays auslesen?

vector = np.array([ 4.8,  8.2, 15.6, 16.6, 23.2, 42.8 ])

Aufgabe 5

Führen Sie mit den folgenden zwei Arrays diese mathematischen Operationen durch:

a = [5, 1, 3, 6, 4] und b = [6, 5, 2, 6, 9]

  1. Addieren Sie beide Arrays
  2. Berechnen Sie das elementweise Produkt von a und b
  3. Addieren Sie zu jedem Eintrag von a 3 dazu

Aufgabe 6

a = [9, 2, 3, 1, 3]

  1. Bestimmen Sie Mittelwert und Standardabweichung für das Array a
  2. Bestimmen Sie Minimum und Maximum der Liste

Aufgabe 7

matrix = np.array([
    [ 1,  2,  3,  4,  5],
    [ 6,  7,  8,  9, 10],
    [11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20],
    [21, 22, 23, 24, 25]
])
  1. Extrahieren Sie die erste Zeile.
  2. Extrahieren Sie die letzte Spalte.
  3. Extrahieren Sie die Untermatrix, die aus den Zeilen 2 bis 4 und den Spalten 1 bis 3 besteht.

Aufgabe 8

array = np.arange(1, 21)
  1. Ändern Sie die Form des Arrays in eine zweidimensionale Matrix der Form 4×5.
  2. Ändern Sie die Form des Arrays in eine zweidimensionale Matrix der Form 5×4.
  3. Ändern Sie die Form des Arrays in eine dreidimensionale Matrix der Form 2×2×5.
  4. Flachen Sie das dreidimensionale Array aus Aufgabe 3 wieder zu einem eindimensionalen Array ab.
  5. Transponieren Sie die 4×54×5-Matrix aus Aufgabe 1.

Aufgabe 9

Mit welchen zwei Funktionen können Daten aus einer Datei gelesen und in einer Datei gespeichert werden?

Aufgabe 10

Sie möchten aus einem Bild die Bilddaten einer Farkomponente isolieren. Was müssen Sie dafür tun?

Aufgabe 1

import numpy as np

Aufgabe 2

# 1.
np.array([1, 2, 3])

# 2. 
print(np.arange(10))

# 3. 
print(np.ones((3, 3)))

# 4. 
print(np.arange(10, 51, 5))
[0 1 2 3 4 5 6 7 8 9]
[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]
[10 15 20 25 30 35 40 45 50]

Aufgabe 3

np.ndim: Gibt die Anzahl der Dimensionen zurück np.shape: Gibt die Längen der einzelnen Dimensionen wieder np.size: Gibt die Anzahl aller Elemente aus

Aufgabe 4

Da es sich hier um Gleitkommazahlen handelt, ist der Datentyp float.64.

vector = np.array([ 4.8,  8.2, 15.6, 16.6, 23.2, 42.8 ])
print(vector.dtype)
float64

Aufgabe 5

a = np.array([5, 1, 3, 6, 4])
b = np.array([6, 5, 2, 6, 9])

# 1.
ergebnis = a + b
print("Die Summe beider Vektoren ergibt: ", ergebnis) 

# 2.
ergebnis = a * b
print("Das Produkt beider Vektoren ergibt: ", ergebnis) 

# 3.
ergebnis = a + 3
print("Die Summe von a und 3 ergibt: ", ergebnis) 
Die Summe beider Vektoren ergibt:  [11  6  5 12 13]
Das Produkt beider Vektoren ergibt:  [30  5  6 36 36]
Die Summe von a und 3 ergibt:  [8 4 6 9 7]

Aufgabe 6

a = np.array([9, 2, 3, 1, 3])

# 1.
mittelwert = np.mean(a)
print("Der Mittelwert ist: ", mittelwert)

standardabweichung = np.std(a)
print("Die Standardabweichung von a beträgt: ", standardabweichung) 

# 2.
minimum = np.min(a)
print("Das Minimum beträgt: ", minimum)

maximum = np.max(a)
print("Das Maximum beträgt: ", maximum)
Der Mittelwert ist:  3.6
Die Standardabweichung von a beträgt:  2.8000000000000003
Das Minimum beträgt:  1
Das Maximum beträgt:  9

Aufgabe 7

matrix = np.array([
    [ 1,  2,  3,  4,  5],
    [ 6,  7,  8,  9, 10],
    [11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20],
    [21, 22, 23, 24, 25]
])

# 1. Erste Zeile
print(matrix[0,:])

# 2.
print(matrix[:,-1])

# 3.
print(matrix[1:4,0:3])
[1 2 3 4 5]
[ 5 10 15 20 25]
[[ 6  7  8]
 [11 12 13]
 [16 17 18]]

Aufgabe 8

array = np.arange(1, 21)

# 1. Ändern der Form in eine 4x5-Matrix
matrix_4x5 = array.reshape(4, 5)

# 2. Ändern der Form in eine 5x4-Matrix
matrix_5x4 = array.reshape(5, 4)

# 3. Ändern der Form in eine 2x2x5-Matrix
matrix_2x2x5 = array.reshape(2, 2, 5)

# 4. Abflachen der 2x2x5-Matrix zu einem eindimensionalen Array
flattened_array = matrix_2x2x5.flatten()

# 5. Transponieren der 4x5-Matrix
transposed_matrix = matrix_4x5.T

# Ausgabe der Ergebnisse (optional)
print("Originales Array:", array)
print("4x5-Matrix:\n", matrix_4x5)
print("5x4-Matrix:\n", matrix_5x4)
print("2x2x5-Matrix:\n", matrix_2x2x5)
print("Abgeflachtes Array:", flattened_array)
print("Transponierte 4x5-Matrix:\n", transposed_matrix)
Originales Array: [ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]
4x5-Matrix:
 [[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]
 [16 17 18 19 20]]
5x4-Matrix:
 [[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]
 [17 18 19 20]]
2x2x5-Matrix:
 [[[ 1  2  3  4  5]
  [ 6  7  8  9 10]]

 [[11 12 13 14 15]
  [16 17 18 19 20]]]
Abgeflachtes Array: [ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]
Transponierte 4x5-Matrix:
 [[ 1  6 11 16]
 [ 2  7 12 17]
 [ 3  8 13 18]
 [ 4  9 14 19]
 [ 5 10 15 20]]

Aufgabe 9

Die passenden Funktionen sind np.loadtxt() und np.savetxt().

Aufgabe 10

Typischerweise sind Bilddaten große Matrizen wobei die Farben in drei unterschieldichen Matrizen gespeichert werden. Dabei ist die Farbreihenfolge oft “Rot”, “Grün” und “Blau”. Dementsprechen müssen wir wenn wie Daten in der Matrix data gespeichert sind mit Slicing eine Dimension auswählen: data[:,:,0], wobei die Zahl 0-2 für die jeweilige Farbe steht.