Implementierung von Matrixtransformationen in Python
Lösen eines linearen Gleichungssystems
Wir definieren ein Gleichungssystem:
2x+y=5x−y=1Dies wird umgeschrieben als:
123456789import numpy as np A = np.array([[2, 1], # Coefficient matrix [1, -1]]) b = np.array([5, 1]) # Constants (RHS) x_solution = np.linalg.solve(A, b) print(x_solution)
Dies bestimmt die Werte von x und y, die beide Gleichungen erfüllen.
Bedeutung: Das Lösen von Gleichungssystemen ist grundlegend in der Data Science – von der Anpassung linearer Modelle bis zur Lösung von Optimierungsrestriktionen.
Anwendung linearer Transformationen
Wir definieren einen Vektor:
v = np.array([[2], [3]])
Dann wenden wir zwei Transformationen an:
Skalierung
Wir strecken x um den Faktor 2 und stauchen y um den Faktor 0,5:
S = np.array([[2, 0],
[0, 0.5]])
scaled_v = S @ v
Dies ergibt:
S⋅v=[2000.5][23]=[41.5]Rotation
Wir rotieren den Vektor um 90° gegen den Uhrzeigersinn mit der Rotationsmatrix:
theta = np.pi / 2
R = np.array([[np.cos(theta), -np.sin(theta)],
[np.sin(theta), np.cos(theta)]])
rotated_v = R @ v
Dies ergibt:
R⋅v=[01−10][23]=[−32]Visualisierung der Transformationen
Mit matplotlib
werden die einzelnen Vektoren vom Ursprung aus dargestellt und ihre Koordinaten beschriftet:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import numpy as np import matplotlib.pyplot as plt # Define original vector v = np.array([[2], [3]]) # Scaling S = np.array([[2, 0], [0, 0.5]]) scaled_v = S @ v # Rotation theta = np.pi / 2 R = np.array([[np.cos(theta), -np.sin(theta)], [np.sin(theta), np.cos(theta)]]) rotated_v = R @ v # Vizualization origin = np.zeros(2) fig, ax = plt.subplots(figsize=(6, 6)) # Plot original ax.quiver(*origin, v[0], v[1], angles='xy', scale_units='xy', scale=1, color='blue', label='Original') # Plot scaled ax.quiver(*origin, scaled_v[0], scaled_v[1], angles='xy', scale_units='xy', scale=1, color='green', label='Scaled') # Plot rotated ax.quiver(*origin, rotated_v[0], rotated_v[1], angles='xy', scale_units='xy', scale=1, color='red', label='Rotated') # Label vector tips ax.text(v[0][0]+0.2, v[1][0]+0.2, "(2, 3)", color='blue') ax.text(scaled_v[0][0]+0.2, scaled_v[1][0]+0.2, "(4, 1.5)", color='green') ax.text(rotated_v[0][0]-0.6, rotated_v[1][0]+0.2, "(-3, 2)", color='red') # Draw coordinate axes ax.annotate("", xy=(5, 0), xytext=(0, 0), arrowprops=dict(arrowstyle="->", linewidth=1.5)) ax.annotate("", xy=(0, 5), xytext=(0, 0), arrowprops=dict(arrowstyle="->", linewidth=1.5)) ax.text(5.2, 0, "X", fontsize=12) ax.text(0, 5.2, "Y", fontsize=12) ax.set_xlim(-5, 5) ax.set_ylim(-5, 5) ax.set_aspect('equal') ax.grid(True) ax.legend() plt.show()
Warum das wichtig ist: Datenwissenschaftliche Arbeitsabläufe beinhalten häufig Transformationen, zum Beispiel:
- Hauptkomponentenanalyse – rotiert Daten;
- Merkmalsnormalisierung – skaliert Achsen;
- Dimensionsreduktion – Projektionen.
Durch die Visualisierung von Vektoren und deren Transformationen wird deutlich, wie Matrizen Daten im Raum tatsächlich verschieben und umformen.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 1.96
Implementierung von Matrixtransformationen in Python
Swipe um das Menü anzuzeigen
Lösen eines linearen Gleichungssystems
Wir definieren ein Gleichungssystem:
2x+y=5x−y=1Dies wird umgeschrieben als:
123456789import numpy as np A = np.array([[2, 1], # Coefficient matrix [1, -1]]) b = np.array([5, 1]) # Constants (RHS) x_solution = np.linalg.solve(A, b) print(x_solution)
Dies bestimmt die Werte von x und y, die beide Gleichungen erfüllen.
Bedeutung: Das Lösen von Gleichungssystemen ist grundlegend in der Data Science – von der Anpassung linearer Modelle bis zur Lösung von Optimierungsrestriktionen.
Anwendung linearer Transformationen
Wir definieren einen Vektor:
v = np.array([[2], [3]])
Dann wenden wir zwei Transformationen an:
Skalierung
Wir strecken x um den Faktor 2 und stauchen y um den Faktor 0,5:
S = np.array([[2, 0],
[0, 0.5]])
scaled_v = S @ v
Dies ergibt:
S⋅v=[2000.5][23]=[41.5]Rotation
Wir rotieren den Vektor um 90° gegen den Uhrzeigersinn mit der Rotationsmatrix:
theta = np.pi / 2
R = np.array([[np.cos(theta), -np.sin(theta)],
[np.sin(theta), np.cos(theta)]])
rotated_v = R @ v
Dies ergibt:
R⋅v=[01−10][23]=[−32]Visualisierung der Transformationen
Mit matplotlib
werden die einzelnen Vektoren vom Ursprung aus dargestellt und ihre Koordinaten beschriftet:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import numpy as np import matplotlib.pyplot as plt # Define original vector v = np.array([[2], [3]]) # Scaling S = np.array([[2, 0], [0, 0.5]]) scaled_v = S @ v # Rotation theta = np.pi / 2 R = np.array([[np.cos(theta), -np.sin(theta)], [np.sin(theta), np.cos(theta)]]) rotated_v = R @ v # Vizualization origin = np.zeros(2) fig, ax = plt.subplots(figsize=(6, 6)) # Plot original ax.quiver(*origin, v[0], v[1], angles='xy', scale_units='xy', scale=1, color='blue', label='Original') # Plot scaled ax.quiver(*origin, scaled_v[0], scaled_v[1], angles='xy', scale_units='xy', scale=1, color='green', label='Scaled') # Plot rotated ax.quiver(*origin, rotated_v[0], rotated_v[1], angles='xy', scale_units='xy', scale=1, color='red', label='Rotated') # Label vector tips ax.text(v[0][0]+0.2, v[1][0]+0.2, "(2, 3)", color='blue') ax.text(scaled_v[0][0]+0.2, scaled_v[1][0]+0.2, "(4, 1.5)", color='green') ax.text(rotated_v[0][0]-0.6, rotated_v[1][0]+0.2, "(-3, 2)", color='red') # Draw coordinate axes ax.annotate("", xy=(5, 0), xytext=(0, 0), arrowprops=dict(arrowstyle="->", linewidth=1.5)) ax.annotate("", xy=(0, 5), xytext=(0, 0), arrowprops=dict(arrowstyle="->", linewidth=1.5)) ax.text(5.2, 0, "X", fontsize=12) ax.text(0, 5.2, "Y", fontsize=12) ax.set_xlim(-5, 5) ax.set_ylim(-5, 5) ax.set_aspect('equal') ax.grid(True) ax.legend() plt.show()
Warum das wichtig ist: Datenwissenschaftliche Arbeitsabläufe beinhalten häufig Transformationen, zum Beispiel:
- Hauptkomponentenanalyse – rotiert Daten;
- Merkmalsnormalisierung – skaliert Achsen;
- Dimensionsreduktion – Projektionen.
Durch die Visualisierung von Vektoren und deren Transformationen wird deutlich, wie Matrizen Daten im Raum tatsächlich verschieben und umformen.
Danke für Ihr Feedback!