Grundlegende 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:
12345import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
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.
12345678910111213import 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)
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:
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).
- Multiplizieren Sie die Ergebnisse jeder Fachprüfung mit dem jeweiligen Koeffizienten.
- Addieren Sie die so erhaltenen Werte für jede:n Studierende:n, um die Endpunktzahl zu berechnen.
- Berechnen Sie das Skalarprodukt (dot product) zwischen
exam_scoresundcoefficients.
Dies liefert Ihnen die Endpunktzahlen aller Studierenden basierend auf der gewichteten Bewertung ihrer Fachleistungen.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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?
Awesome!
Completion rate improved to 3.7
Grundlegende 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:
12345import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
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.
12345678910111213import 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)
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:
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).
- Multiplizieren Sie die Ergebnisse jeder Fachprüfung mit dem jeweiligen Koeffizienten.
- Addieren Sie die so erhaltenen Werte für jede:n Studierende:n, um die Endpunktzahl zu berechnen.
- Berechnen Sie das Skalarprodukt (dot product) zwischen
exam_scoresundcoefficients.
Dies liefert Ihnen die Endpunktzahlen aller Studierenden basierend auf der gewichteten Bewertung ihrer Fachleistungen.
Lösung
Danke für Ihr Feedback!
single