Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Grundlegende Lineare Algebra mit NumPy | Mathematik mit NumPy
Ultimatives NumPy

bookGrundlegende Lineare Algebra mit NumPy

Lineare Algebra ist ein grundlegender Zweig der Mathematik, der eine entscheidende Rolle in verschiedenen Bereichen spielt, darunter maschinelles Lernen, Deep Learning und Datenanalyse.

Vektoren und Matrizen

In der linearen Algebra ist ein Vektor eine geordnete Menge von Werten. 1D-NumPy-Arrays können Vektoren effizient darstellen. Eine Matrix ist ein zweidimensionales Zahlenarray, das durch ein 2D-Array in NumPy repräsentiert werden kann.

Vektor- und Matrixaddition sowie -subtraktion und die Skalare Multiplikation wurden bereits im Kapitel "Grundlegende mathematische Operationen" behandelt. Hier konzentrieren wir uns auf weitere Operationen.

Transponieren

Transponieren ist eine Operation, die eine Matrix entlang ihrer Diagonalen spiegelt. Anders ausgedrückt, werden die Zeilen der Matrix in Spalten und die Spalten in Zeilen umgewandelt.

Eine Matrix kann mit dem Attribut .T eines NumPy-Arrays transponiert werden:

12345
import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
copy

Skalarprodukt

Das Skalarprodukt ist vermutlich die am häufigsten verwendete lineare Algebra-Operation im Machine und Deep Learning. Das Skalarprodukt zweier Vektoren (die eine gleiche Anzahl an Elementen haben müssen) ist die Summe ihrer elementweisen Produkte. Das Ergebnis ist ein Skalar:

Matrixmultiplikation

Matrixmultiplikation ist nur definiert, wenn die Anzahl der Spalten in der ersten Matrix gleich der Anzahl der Zeilen in der zweiten Matrix ist. Die resultierende Matrix hat die gleiche Anzahl an Zeilen wie die erste Matrix und die gleiche Anzahl an Spalten wie die zweite Matrix.

Wie ersichtlich, ist jedes Element der resultierenden Matrix das Skalarprodukt zweier Vektoren. Die Zeilennummer des Elements entspricht der Nummer des Zeilenvektors in der ersten Matrix, und die Spaltennummer entspricht der Nummer des Spaltenvektors in der zweiten Matrix.

Die Anzahl der Spalten in der ersten Matrix muss gleich der Anzahl der Zeilen in der zweiten Matrix sein, da das Skalarprodukt voraussetzt, dass beide Vektoren die gleiche Anzahl an Elementen besitzen.

Skalarprodukt und Matrixmultiplikation in NumPy

NumPy stellt die Funktion dot() sowohl für das Skalarprodukt als auch für die Matrixmultiplikation bereit. Diese Funktion nimmt zwei Arrays als Argumente entgegen.

Alternativ kann auch der Operator @ zwischen zwei Arrays verwendet werden, um das gleiche Ergebnis zu erzielen.

12345678910111213
import numpy as np vector_1 = np.array([1, 2, 3]) vector_2 = np.array([4, 5, 6]) # Dot product using the dot() function print(np.dot(vector_1, vector_2)) # Dot product using the @ operator print(vector_1 @ vector_2) matrix_1 = np.array([[1, 2, 3], [4, 5, 6]]) matrix_2 = np.array([[7, 10], [8, 11], [9, 12]]) # Matrix multiplication using the dot() function print(np.dot(matrix_1, matrix_2)) # Matrix multiplication using the @ operator print(matrix_1 @ matrix_2)
copy

Wenn das rechte Argument bei der Matrixmultiplikation ein Vektor (1D-Array) ist, behandelt NumPy diesen als Matrix, bei der die letzte Dimension 1 ist. Zum Beispiel wird beim Multiplizieren einer 6x4-Matrix mit einem Vektor mit 4 Elementen der Vektor als 4x1-Matrix betrachtet.

Wenn das linke Argument bei der Matrixmultiplikation ein Vektor ist, behandelt NumPy diesen als Matrix, bei der die erste Dimension 1 ist. Beispielsweise wird beim Multiplizieren eines Vektors mit 4 Elementen mit einer 4x6-Matrix der Vektor als 1x4-Matrix betrachtet.

Die folgende Abbildung zeigt die Struktur der Arrays exam_scores und coefficients, die in der Aufgabe verwendet werden:

Aufgabe

Swipe to start coding

Sie arbeiten mit dem Array exam_scores, das simulierte Prüfungsergebnisse von drei Studierenden enthält (jede Zeile steht für eine:n Studierende:n) in drei Fächern (jede Spalte steht für ein Fach).

  1. Multiplizieren Sie die Ergebnisse jeder Fachprüfung mit dem jeweiligen Koeffizienten.
  2. Addieren Sie die so erhaltenen Werte für jede:n Studierende:n, um die Endpunktzahl zu berechnen.
  3. Berechnen Sie das Skalarprodukt (dot product) zwischen exam_scores und coefficients.

Dies liefert Ihnen die Endpunktzahlen aller Studierenden basierend auf der gewichteten Bewertung ihrer Fachleistungen.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain the difference between the dot product and matrix multiplication?

How do I know when to use the dot() function versus the @ operator in NumPy?

Can you provide more examples of matrix multiplication with different shapes?

close

Awesome!

Completion rate improved to 3.7

bookGrundlegende Lineare Algebra mit NumPy

Swipe um das Menü anzuzeigen

Lineare Algebra ist ein grundlegender Zweig der Mathematik, der eine entscheidende Rolle in verschiedenen Bereichen spielt, darunter maschinelles Lernen, Deep Learning und Datenanalyse.

Vektoren und Matrizen

In der linearen Algebra ist ein Vektor eine geordnete Menge von Werten. 1D-NumPy-Arrays können Vektoren effizient darstellen. Eine Matrix ist ein zweidimensionales Zahlenarray, das durch ein 2D-Array in NumPy repräsentiert werden kann.

Vektor- und Matrixaddition sowie -subtraktion und die Skalare Multiplikation wurden bereits im Kapitel "Grundlegende mathematische Operationen" behandelt. Hier konzentrieren wir uns auf weitere Operationen.

Transponieren

Transponieren ist eine Operation, die eine Matrix entlang ihrer Diagonalen spiegelt. Anders ausgedrückt, werden die Zeilen der Matrix in Spalten und die Spalten in Zeilen umgewandelt.

Eine Matrix kann mit dem Attribut .T eines NumPy-Arrays transponiert werden:

12345
import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
copy

Skalarprodukt

Das Skalarprodukt ist vermutlich die am häufigsten verwendete lineare Algebra-Operation im Machine und Deep Learning. Das Skalarprodukt zweier Vektoren (die eine gleiche Anzahl an Elementen haben müssen) ist die Summe ihrer elementweisen Produkte. Das Ergebnis ist ein Skalar:

Matrixmultiplikation

Matrixmultiplikation ist nur definiert, wenn die Anzahl der Spalten in der ersten Matrix gleich der Anzahl der Zeilen in der zweiten Matrix ist. Die resultierende Matrix hat die gleiche Anzahl an Zeilen wie die erste Matrix und die gleiche Anzahl an Spalten wie die zweite Matrix.

Wie ersichtlich, ist jedes Element der resultierenden Matrix das Skalarprodukt zweier Vektoren. Die Zeilennummer des Elements entspricht der Nummer des Zeilenvektors in der ersten Matrix, und die Spaltennummer entspricht der Nummer des Spaltenvektors in der zweiten Matrix.

Die Anzahl der Spalten in der ersten Matrix muss gleich der Anzahl der Zeilen in der zweiten Matrix sein, da das Skalarprodukt voraussetzt, dass beide Vektoren die gleiche Anzahl an Elementen besitzen.

Skalarprodukt und Matrixmultiplikation in NumPy

NumPy stellt die Funktion dot() sowohl für das Skalarprodukt als auch für die Matrixmultiplikation bereit. Diese Funktion nimmt zwei Arrays als Argumente entgegen.

Alternativ kann auch der Operator @ zwischen zwei Arrays verwendet werden, um das gleiche Ergebnis zu erzielen.

12345678910111213
import numpy as np vector_1 = np.array([1, 2, 3]) vector_2 = np.array([4, 5, 6]) # Dot product using the dot() function print(np.dot(vector_1, vector_2)) # Dot product using the @ operator print(vector_1 @ vector_2) matrix_1 = np.array([[1, 2, 3], [4, 5, 6]]) matrix_2 = np.array([[7, 10], [8, 11], [9, 12]]) # Matrix multiplication using the dot() function print(np.dot(matrix_1, matrix_2)) # Matrix multiplication using the @ operator print(matrix_1 @ matrix_2)
copy

Wenn das rechte Argument bei der Matrixmultiplikation ein Vektor (1D-Array) ist, behandelt NumPy diesen als Matrix, bei der die letzte Dimension 1 ist. Zum Beispiel wird beim Multiplizieren einer 6x4-Matrix mit einem Vektor mit 4 Elementen der Vektor als 4x1-Matrix betrachtet.

Wenn das linke Argument bei der Matrixmultiplikation ein Vektor ist, behandelt NumPy diesen als Matrix, bei der die erste Dimension 1 ist. Beispielsweise wird beim Multiplizieren eines Vektors mit 4 Elementen mit einer 4x6-Matrix der Vektor als 1x4-Matrix betrachtet.

Die folgende Abbildung zeigt die Struktur der Arrays exam_scores und coefficients, die in der Aufgabe verwendet werden:

Aufgabe

Swipe to start coding

Sie arbeiten mit dem Array exam_scores, das simulierte Prüfungsergebnisse von drei Studierenden enthält (jede Zeile steht für eine:n Studierende:n) in drei Fächern (jede Spalte steht für ein Fach).

  1. Multiplizieren Sie die Ergebnisse jeder Fachprüfung mit dem jeweiligen Koeffizienten.
  2. Addieren Sie die so erhaltenen Werte für jede:n Studierende:n, um die Endpunktzahl zu berechnen.
  3. Berechnen Sie das Skalarprodukt (dot product) zwischen exam_scores und coefficients.

Dies liefert Ihnen die Endpunktzahlen aller Studierenden basierend auf der gewichteten Bewertung ihrer Fachleistungen.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
single

single

some-alt