Contenu du cours
Mathématiques pour l'Analyse de Données et la Modélisation
Mathématiques pour l'Analyse de Données et la Modélisation
Vecteurs et Matrices
Qu'est-ce qu'un vecteur ?
Un vecteur est un objet mathématique représentant une quantité avec à la fois une magnitude et une direction. Pour comprendre l'essence de ce qu'est un vecteur, comprenons d'abord ce qu'est un nombre unique.
Un nombre unique est une caractéristique quantitative simple d'une propriété qui décrit sa magnitude. En même temps, un vecteur est un ensemble de telles caractéristiques et peut être utilisé pour décrire des objets et des processus complexes qu'un nombre unique ne peut pas décrire.
Ainsi, le vecteur peut être interprété comme une liste ordonnée de nombres. Ces nombres sont également appelés coordonnées.
Les vecteurs peuvent décrire la vitesse, la force, les couleurs, les structures de données complexes, etc. De plus, avec l'aide des vecteurs, la position d'un point dans l'espace est généralement définie.
Exemple : déterminer la position d'un point dans l'espace
import matplotlib.pyplot as plt def plot_vectors(vectors): origin = [0, 0] # The point at which the vector begins # Plot each vector in the list for vector in vectors: # Plot a single vector from the origin to the specified point plt.quiver(*origin, *vector, angles='xy', scale_units='xy', scale=1) # Set the limits for the x-axis and y-axis plt.xlim(-5, 5) # Set the x-axis limits plt.ylim(-5, 5) # Set the y-axis limits # Label the x-axis and y-axis plt.xlabel('X-axis') plt.ylabel('Y-axis') # Show grid lines on the plot plt.grid(True) # Display the plot plt.show() # Example usage vectors = [[3, 4], [-3, 4], [3, -4], [-3, -4]] # Four different vectors plot_vectors(vectors)
Nous pouvons voir 4 flèches différentes : chacune a la même longueur mais des directions différentes. En conséquence, nous ne pouvons pas décrire la flèche en utilisant uniquement la magnitude comme un nombre unique - nous devons utiliser un vecteur pour fournir des informations supplémentaires sur la direction de la flèche.
Exemple : Représentation des données pour les modèles d'apprentissage automatique
Les données pour les modèles d'apprentissage automatique sont également représentées à l'aide de vecteurs :
import numpy as np from sklearn.datasets import load_iris # Load the Iris dataset iris = load_iris() # Access the data attribute data = iris.data # Print the first few samples of the data print(f'Data samples:\n{data[:5]}')
Nous pouvons voir que les informations sur chaque fleur d'Iris sont stockées sous forme de vecteur avec 4 coordonnées. Chaque coordonnée représente une caractéristique particulière de la fleur : longueur/largeur d'un sépale/pétale.
Évidemment, si nous utilisons un seul nombre au lieu d'un vecteur, nous ne pourrons pas fournir suffisamment d'informations sur les caractéristiques d'une plante particulière.
Qu'est-ce qu'une matrice ?
Un autre objet mathématique important est une matrice - un tableau rectangulaire de nombres, symboles ou expressions disposés en lignes et colonnes.
Les matrices sont utilisées pour représenter et manipuler les transformations linéaires, les systèmes d'équations linéaires, et d'autres opérations mathématiques. Nous pouvons interpréter une matrice comme un vecteur dont les coordonnées sont également des vecteurs.
Les matrices sont couramment utilisées pour décrire et modéliser différents processus.
Représentation d'image à l'aide de matrice
import numpy as np import matplotlib.pyplot as plt # Generate a grayscale image image = np.array([[50, 100, 150, 200], [75, 125, 175, 225], [100, 150, 200, 250], [125, 175, 225, 255]]) # Display the grayscale image plt.imshow(image, cmap='gray') plt.axis('off') plt.show()
Chaque nombre dans la matrice représente l'intensité ou la valeur de luminosité d'un pixel dans l'image en niveaux de gris.
Manipulations de figures
Nous pouvons également effectuer différentes manipulations avec des figures en utilisant des matrices. Par exemple, nous pouvons faire pivoter une figure en utilisant la multiplication de matrices (nous examinerons cette opération plus en détail dans la section suivante) :
import numpy as np import matplotlib.pyplot as plt # Define the coordinates of the figure x = np.array([0, 1, 1, 0, 0]) y = np.array([0, 0, 1, 1, 0]) # Plot the original figure plt.plot(x, y, color='blue', label='Original') # Define the rotation angle in degrees angle_deg = 45 # Convert the angle to radians angle_rad = np.radians(angle_deg) # Create the rotation matrix rotation_matrix = np.array([[np.cos(angle_rad), -np.sin(angle_rad)], [np.sin(angle_rad), np.cos(angle_rad)]]) # Perform the rotation transformation vertices = np.row_stack((x, y)) vertices_rotated = np.dot(rotation_matrix, vertices) # Extract the rotated coordinates x_rotated = vertices_rotated.T[:, 0] y_rotated = vertices_rotated.T[:, 1] # Plot the rotated figure plt.plot(x_rotated, y_rotated, color='red', label='Rotated') # Set the aspect ratio and limits of the plot plt.gca().set_aspect('equal') plt.xlim(-2, 2) plt.ylim(-2, 2) # Add labels and legend plt.xlabel('X-axis') plt.ylabel('Y-axis') plt.legend() # Display the plot plt.show()
Nous avons utilisé une matrice de rotation spécifique et l'avons appliquée à notre figure. Cette matrice détermine la manière dont nous faisons pivoter notre figure. Vous pouvez changer la variable angle_deg
dans le code ci-dessus et observer le résultat de la rotation.
En conséquence, nous avons obtenu la même figure avec les mêmes caractéristiques mais tournée de 45 degrés dans le sens antihoraire.
Note
Il existe de nombreuses autres façons d'utiliser les vecteurs et les matrices dans des tâches réelles. Les énumérer prendrait beaucoup de temps, donc nous ne le ferons pas dans ce cours.
Merci pour vos commentaires !