Funktionsaufrufe und -rückgaben

Funktionsaufrufe und -rückgaben#

Im Kapitel zur Arrayerstellung haben Sie bereits kurz die Funktionen \(\texttt{shape}\), \(\texttt{ndim}\) und \(\texttt{size}\) kennengelernt, um Größe, Dimension und Anzahl der Elemente eines Arrays auszulesen.

  • \(\texttt{np.shape(A)}\): Größe des Arrays \(\texttt{A}\)

  • \(\texttt{np.ndim(A)}\): Dimension des Arrays \(\texttt{A}\)

  • \(\texttt{np.size(A)}\): Anzahl der gesamten Elemente des Arrays \(\texttt{A}\)

Anhand dieser Funktionen zeigen wir Ihnen wie Sie Funktionsrückgaben speichern und wie Sie mehrteilige Funktionsrückgaben in einzeln Varaiblen aufteilen können.

Hide code cell content
import numpy as np

np.random.seed(42)
size = [np.random.randint(2, 10) for _ in range(3)]
A_mystery = np.random.randint(-20, 20, size=size)
B = np.random.randint(-20, 20, size=[3, 9])
size = [np.random.randint(2, 10) for _ in range(2)]
B_mystery = np.random.randint(-20, 20, size=size)

Sie können die Funktion \(\texttt{shape}\) auf ein \(n\)-dimensionales Array anwenden, um eine einzige Ausgabevariable zu erhalten, die die Arraygröße in einem \(n\)-Tupel enthält.

Bei einem eindimensionalen Array entspricht der erste Eintrag der Anzahl der Elemente. Bei einem zweidimensionalem Array handelt es sich beim ersten Element um die Anzahl der Zeilen, während das zweite Element der Anzahl der Spalten entspricht.

Aufgabe 1.1

Erstellen Sie eine Variable mit dem Namen \(\texttt{shape_B}\), die die Größe des Arrays \(\texttt{B}\) enthält.

print(B)
# Ihr Code

Aufgabe 1.2

Bestimmen Sie die Dimension, die Größe und die Anzahl der Elemente des Arrays \(\texttt{A_mystery}\). Was fällt bezüglich der Beziehung zwischen der Größe und der Anzahl der Elemente des Arrays auf?

# Ihr Code

Mehrteilige Funktionsrückgaben#

Sie können von der Funktion \(\texttt{shape}\) auch mehrere Ausgabevariablen anfordern. In diesem Fall enthält jede Variable die Größe einer Dimension des Eingabearrays.

\(\texttt{xrow, xcol = np.shape(A)}\)

Trennen Sie die einzelnen Variablen durch Kommata, um mehrere Ausgaben anzufordern.

Aufgabe 2.1

Erstellen Sie die Variablen \(\texttt{num_rows}\) und \(\texttt{num_cols}\), die die Anzahl der Zeilen bzw. der Spalten der Variablen \(\texttt{B}\) enthalten.

# Ihr Code 

Sie können die Eigenwerte und Eigenvektoren einer quadratischen Matrix \(\texttt{A}\) mit Hilfe der Funktion \(\texttt{np.linalg.eig(A)}\) bestimmen.

Die erste Ausgabe der Funktion liefert die Eigenwerte in Form eines Arrays und die zweite Ausgabe die zugehörigen Eigenvektoren in Form eines zweidimensionalen Arrays. Eine Spalte entspricht einem Eigenvektor.

Aufgabe 1.3

Erstellen Sie die Variablen \(\texttt{ew_C}\) und \(\texttt{ev_C}\), die die Eignwerte und die entsprechenden Eigenvektoren von \(B\) enthalten.

C = np.array([[2, 0], [0, -4]])
# Ihr Code 

Wenn Sie eine Ausgabe einer Funktion nicht benötigen, können Sie diese Ausgabe ignorieren, indem Sie an ihrer Stelle einen Unterstrich (\(\texttt{_}\)) verwenden.

Beispielsweise können Sie in einer Matrix nur die Anzahl der Spalten bestimmen:

\(\texttt{_, num_cols = np.shape(A)}\)

Aufgabe 2.4

Erstellen Sie eine Variable mit dem Namen \(\texttt{num_rows}\), die die Anzahl der Zeilen des Arrays \(\texttt{B_mystery}\) enthält. Vergewissern Sie sich vorher wie viele Dimensionen das Array hat.

# Ihr Code