Représentation des données
Pour représenter des données multidimensionnelles, pour les modèles d’IA, on utilise le concept de tenseur.

| Type de tenseur | Dimensions | Exemple d’utilisation | Représentation en Python (NumPy) |
|---|---|---|---|
| Scalaire | 0D | Un nombre (ex. : température) | np.array(25) |
| Vecteur | 1D | Liste de nombres (ex. : caractéristiques d'une maison) | np.array([1, 2, 3]) |
| Matrice | 2D | Tableau de nombres (ex. : image en N/B) | np.array([[1, 2], [3, 4]]) |
| Tenseur | 3D+ | Matrice de matrices (ex. : image en couleur) | np.array([[[R,G,B], ...], ...]) (RGB) |
Le mot « tenseur » est le terme générique qui regroupe scalaire, vecteur, matrice et tenseur, quel que soit le nombre de dimensions.
- Scalaire : ordre = 0 (un seul nombre).
- Vecteur : ordre = 1 (liste de nombres).
- Matrice : ordre = 2 (tableau 2D).
- Tenseur : ordre ≥ 3 (tableau nD).
En informatique (ex: bibliothèques comme TensorFlow, PyTorch ou NumPy), on utilise souvent le mot « dimension » pour parler de l'ordre (on dit « un tableau de dimension 3 » pour un tenseur d'ordre 3).
Par exemple :
- Un vecteur (ordre 1) a une dimension (longueur).
- Une matrice (ordre 2) a deux dimensions (lignes et colonnes).
- Un tenseur (ordre 3 ou plus) a trois dimensions ou plus (ex: hauteur, largeur, couleur, etc.).
Dans un réseau de neurones, les entrées, poids et sorties sont tous des tenseurs.
Scalaire pour une température
Qu'est-ce qu'un scalaire ?

Un scalaire est une valeur unique (un seul nombre), sans dimension ni structure complexe.
Exemple concret
Imaginons une température mesurée en un point précis :
- Valeur : 25°C
Un scalaire est simplement un nombre unique, sans dimension.
Stocker cette température dans un scalaire
Comment stocker cette température dans un scalaire avec Python ?
En Python, on stocke cette température dans un scalaire (un nombre) ou un tableau NumPy de dimension 0 :
import numpy as np
temperature = np.array(25)
print("Forme du scalaire :", temperature.shape) # ()
print("Valeur du scalaire :", temperature) # 25
Explication :
()signifie : scalaire (0 dimension).- C’est simplement un nombre, sans structure complexe.
Pour installer NumPy et Matplotlib
pip install numpy matplotlib
Stocker plusieurs températures dans un vecteur
Comment stocker plusieurs températures dans un vecteur ?
Si on mesure la température à différents moments, on peut stocker ces valeurs dans un vecteur 1D :
temperatures = np.array([22, 25, 23, 27, 24])
print("Forme du vecteur :", temperatures.shape) # (5,)
print("Valeurs :", temperatures)
Explication :
(5,)signifie : un vecteur de 5 températures.
Afficher une température
Comment afficher une température ?
Pour afficher une seule température (scalaire), on peut utiliser l'interpolation avec une chaine de caractères formatée :
print(f"Température actuelle : {temperature}°C")
Pour afficher plusieurs températures (vecteur), on peut utiliser matplotlib pour tracer un graphique simple :
import matplotlib.pyplot as plt
plt.plot(temperatures, marker='o')
plt.title("Évolution de la température")
plt.xlabel("Temps")
plt.ylabel("Température (°C)")
plt.show()

Pour installer NumPy et Matplotlib
pip install numpy matplotlib
Vecteur pour les infos d'une maison
Qu'est-ce qu'un vecteur ?

Un vecteur est une liste ordonnée de nombres, représentant des caractéristiques ou des coordonnées dans un espace multidimensionnel.
Analogie visuelle

Imaginez un tableau Excel avec 300 colonnes.
Chaque ligne représente un mot, et chaque colonne une caractéristique invisible.
Le vecteur est simplement la liste des valeurs sur cette ligne.
- Opérations : On peut faire v(roi) - v(homme) + v(femme) = v(reine), comme en algèbre classique !
Exemple concret
Imaginons une maison décrite par 2 caractéristiques (features) :
- Surface (en m²)
- Nombre de chambres
TODO: Ajouter une image simple d’un vecteur avec 2 coordonnées (surface, chambres)
Voici à quoi ressemble ce vecteur de caractéristiques :
| Caractéristique | Valeur |
|---|---|
| Surface | 120 |
| Chambres | 3 |
Imaginons une maison décrite par 4 caractéristiques (features) :
- Surface (en m²)
- Nombre de chambres
- Âge (en années)
- Prix (en milliers d’euros)
Voici à quoi ressemble ce vecteur de caractéristiques :
| Caractéristique | Valeur |
|---|---|
| Surface | 120 |
| Chambres | 3 |
| Âge | 10 |
| Prix | 350 |
Stocker ces infos dans un vecteur
Comment stocker ces caractéristiques dans un vecteur avec Python ?
En Python, on stocke ces caractéristiques dans un vecteur 1D (une liste de nombres) :
import numpy as np
caracteristiques_maison = np.array([120, 3, 10, 350])
print("Forme du vecteur :", caracteristiques_maison.shape) # (4,)
Explication :
(4,)signifie : un vecteur de 4 éléments.- Chaque élément est une caractéristique de la maison.
Normaliser le vecteur
Comment normaliser ce vecteur pour que toutes les valeurs soient entre 0 et 1 ?
On peut normaliser chaque valeur pour qu’elle soit entre 0 et 1 (utile pour beaucoup d’algorithmes d’IA) :
# Valeurs minimales et maximales pour chaque caractéristique (exemple)
min_vals = np.array([0, 1, 0, 0])
max_vals = np.array([200, 10, 50, 500])
# Normalisation
vecteur_normalise = (caracteristiques_maison - min_vals) / (max_vals - min_vals)
print("Vecteur normalisé :", vecteur_normalise)
# Résultat : [0.6, 0.25, 0.2, 0.7]
Stocker plusieurs maisons
Comment stocker les caractéristiques de plusieurs maisons ?

Si on a 3 maisons, on peut stocker leurs caractéristiques dans une matrice 2D (chaque ligne = une maison) :
maisons = np.array([
[120, 3, 10, 350], # Maison 1
[80, 2, 5, 250], # Maison 2
[150, 4, 20, 450] # Maison 3
])
print("Forme de la matrice :", maisons.shape) # (3, 4)
Explication :
(3, 4)signifie : 3 maisons, 4 caractéristiques chacune.
Matrice pour une image en niveaux de gris
Qu'est-ce qu'une matrice ?

Une matrice est un tableau à 2 dimensions (2D) de nombres, organisé en lignes et colonnes.
Exemple concret
Imaginons une toute petite image en gris : 2 pixels de haut x 2 pixels de large. Chaque pixel est représenté par une seule valeur (entre 0 pour noir et 255 pour blanc).
Voici à quoi ressemble cette image en tableau :
| Pixel 1 | Pixel 2 | |
|---|---|---|
| Ligne 1 | 50 | 200 |
| Ligne 2 | 100 | 25 |
Stocker cette image dans une matrice
Comment stocker cette image dans une matrice avec Python ?
En Python, on stocke cette image dans un tenseur 2D (une matrice) :
import numpy as np
image_gris = np.array([
[50, 200], # Ligne 1
[100, 25] # Ligne 2
])
print("Forme de la matrice :", image_gris.shape) # (2, 2)
Explication :
(2, 2)signifie : 2 lignes, 2 colonnes.- Chaque nombre est la valeur d’un pixel (0=noir, 255=blanc).
Aplatir cette image en vecteur
Comment aplatir cette image en vecteur avec Python ?
On peut transformer cette image en une longue liste (vecteur) de 4 nombres (2x2) :
vecteur_gris = image_gris.flatten()
print("Vecteur aplati :", vecteur_gris)
# Résultat : [50, 200, 100, 25]
Afficher cette image
Comment afficher cette image avec Matplotlib ?
On peut afficher cette image avec Matplotlib, en précisant cmap='gray' pour indiquer qu’il s’agit de niveaux de gris :
import matplotlib.pyplot as plt
plt.imshow(image_gris, cmap='gray')
plt.axis('off') # Pas d'axes
plt.show()

Tenseur pour une image en couleur
Qu'est-ce qu'un tenseur ?

Un tenseur est une structure de données multidimensionnelle qui incluent les scalaires, vecteurs et matrices à plus de deux dimensions.
Exemple concret
Imaginons une toute petite image en couleur : 2 pixels de haut x 2 pixels de large, et chaque pixel a 3 couleurs (Rouge, Vert, Bleu).
Voici à quoi ressemble cette image en tableau :
| Pixel 1 | Pixel 2 | |
|---|---|---|
| Ligne 1 | Rouge (R,V,B) | Vert (R,V,B) |
| Ligne 2 | Bleu (R,V,B) | Jaune (R,V,B) |
Stocker cette image dans un tenseur
Comment stocker cette image dans un tenseur avec Python ?
En Python, on stocke cette image dans un tenseur 3D :
import numpy as np
image_rgb = np.array([
[ # Ligne 1
[255, 0, 0], # Pixel 1 : Rouge
[0, 255, 0] # Pixel 2 : Vert
],
[ # Ligne 2
[0, 0, 255], # Pixel 3 : Bleu
[255, 255, 0] # Pixel 4 : Jaune
]
])
print("Forme du tenseur :", image_rgb.shape) # (2, 2, 3)
Explication :
(2, 2, 3)signifie : 2 lignes, 2 colonnes, 3 couleurs par pixel.- Chaque
[R, V, B]est un pixel.
Aplatir cette image en vecteur
Comment aplatir cette image en vecteur avec Python ?
On peut transformer cette image en une longue liste (vecteur) de 12 nombres (2x2x3) :
vecteur_image = image_rgb.flatten()
print("Vecteur aplati :", vecteur_image)
# Résultat : [255, 0, 0, 0, 255, 0, 0, 0, 255, 255, 255, 0]
Afficher cette image
Comment afficher cette image avec Matplotlib ?
On peut aussi afficher cette image avec Matplotlib :
import matplotlib.pyplot as plt
plt.imshow(image_rgb)
plt.axis('off') # Pas d'axes
plt.show()
