Devmind.
Menu

Apprendre, à votre rythme

Tous les cursus sont accessibles sans compte.

Chapitre 2 / Pratique

Numpy en douceur : shape, axis et @

Voir un tableau avant de calculer vectorisé.

◷ 15 minutesTravail sur votre machine

Shape et axis

import numpy as np
X = np.array([[1., 2.], [3., 4.], [5., 6.]])
print(X.shape)        # (3, 2) : 3 lignes, 2 colonnes
print(X[0])           # [1. 2.] : première ligne, indice 0
print(X[:, 0])        # [1. 3. 5.] : : = toutes les lignes, colonne 0
print(X.mean(axis=0)) # [3. 4.] : moyenne le long des lignes, par colonne

axis=0 = écrase les lignes (moyenne par colonne), axis=1 = écrase les colonnes (moyenne par ligne). (3,) = vecteur de 3 nombres, (3, 1) = colonne de 3 lignes : même contenu, forme différente, erreurs garanties si on mélange.

@ et broadcast

@ = produit matriciel (combinaisons pondérées en une ligne, détaillé au chapitre algèbre) :

w = np.array([2., 1.])
print(X @ w)  # [4. 10. 16.] : une prédiction par ligne

Broadcast = numpy étire tout seul la petite forme sur la grande, dimensions comparées depuis la droite :

print(X + np.array([10., 20.]))  # ajoute [10, 20] à chaque ligne

reshape(-1, 1) = mets en colonne, -1 veut dire devine cette taille. Règle d'or du cursus : toujours afficher shape avant @.

Pas de correction en ligneConfrontez votre code aux résultats attendus du cours.