Jeux Mathématiques avec NumPy

PythonBeginner
Pratiquer maintenant

Introduction

Dans ce défi, vous allez vous exercer à utiliser le module NumPy en Python. Vous devrez implémenter plusieurs fonctions courantes pour manipuler des tableaux NumPy, couvrant ainsi les opérations mathématiques et structurelles fondamentales. Les fichiers nécessaires ont été créés pour vous dans l'explorateur de fichiers à gauche.

Ceci est un Défi (Challenge), qui diffère d'un Travail Pratique guidé par le fait que vous devez essayer de réaliser la tâche de manière autonome, plutôt que de suivre des étapes d'apprentissage pas à pas. Les défis sont généralement plus complexes. Si vous rencontrez des difficultés, vous pouvez en discuter avec Labby ou consulter la solution. Les données historiques indiquent qu'il s'agit d'un défi de niveau avancé avec un taux de réussite de 50%. Il a reçu un taux d'avis positifs de 97% de la part des apprenants.

Multiplication élément par élément

Votre première tâche consiste à créer une fonction qui multiplie deux tableaux NumPy élément par élément. Cela signifie que chaque élément du premier tableau est multiplié par l'élément correspondant dans le second tableau.

À faire

  • Complétez la fonction multiply_arrays dans le fichier multiply_arrays.py.

Exigences

  • La fonction doit obligatoirement s'appeler multiply_arrays.
  • Elle doit accepter deux tableaux NumPy, a et b, en entrée.
  • Elle doit renvoyer un nouveau tableau NumPy résultant de la multiplication élément par élément de a et b.
  • Les tableaux d'entrée auront la même forme (shape).

Exemple

Après avoir implémenté la fonction, exécutez le script pour vérifier le résultat :

python3 multiply_arrays.py

Sortie :

Input a: [1 2 3]
Input b: [4 5 6]
Element-wise multiplication result: [4 10 18]
Expected: [4 10 18]
✨ Vérifier la solution et pratiquer

Multiplication matricielle

Ensuite, vous allez implémenter la multiplication de matrices. Contrairement à la multiplication élément par élément, le produit matriciel suit les règles spécifiques de l'algèbre linéaire et nécessite que les dimensions internes des deux matrices soient compatibles.

À faire

  • Complétez la fonction matrix_multiply dans le fichier matrix_multiply.py.

Exigences

  • La fonction doit s'appeler matrix_multiply.
  • Elle doit accepter deux tableaux NumPy, a et b, en entrée.
  • Elle doit renvoyer un nouveau tableau NumPy qui est le produit matriciel de a et b.
  • Les tableaux d'entrée auront des dimensions compatibles pour une multiplication matricielle.

Exemple

Après avoir implémenté la fonction, exécutez le script pour voir le résultat :

python3 matrix_multiply.py

Sortie :

Input matrix a:
[[1 2]
 [3 4]]
Input matrix b:
[[5 6]
 [7 8]]
Matrix multiplication result:
[[19 22]
 [43 50]]
Expected:
[[19 22]
 [43 50]]
✨ Vérifier la solution et pratiquer

Transposition d'un tableau

Dans cette étape, vous allez écrire une fonction pour transposer un tableau NumPy. Transposer un tableau consiste à permuter ses lignes et ses colonnes.

À faire

  • Complétez la fonction transpose_array dans le fichier transpose_array.py.

Exigences

  • La fonction doit s'appeler transpose_array.
  • Elle doit accepter un seul tableau NumPy, a, en entrée.
  • Elle doit renvoyer la version transposée du tableau d'entrée.

Exemple

Après l'implémentation, lancez le script pour tester :

python3 transpose_array.py

Sortie :

Original array:
[[1 2 3]
 [4 5 6]]
Transposed array:
[[1 4]
 [2 5]
 [3 6]]
Expected:
[[1 4]
 [2 5]
 [3 6]]
✨ Vérifier la solution et pratiquer

Redimensionnement d'un tableau

À présent, vous allez créer une fonction pour redimensionner (reshape) un tableau NumPy. Le redimensionnement modifie les dimensions d'un tableau sans changer ses données. Le nombre total d'éléments doit rester identique.

À faire

  • Complétez la fonction reshape_array dans le fichier reshape_array.py.

Exigences

  • La fonction doit s'appeler reshape_array.
  • Elle doit accepter un tableau NumPy a et un tuple shape en entrée.
  • Elle doit renvoyer un nouveau tableau contenant les données de a mais avec les nouvelles dimensions spécifiées par shape.

Exemple

Après avoir implémenté la fonction, exécutez le script :

python3 reshape_array.py

Sortie :

Original array: [1 2 3 4 5 6]
New shape: (2, 3)
Reshaped array:
[[1 2 3]
 [4 5 6]]
Expected:
[[1 2 3]
 [4 5 6]]
✨ Vérifier la solution et pratiquer

Calcul de la distance euclidienne

La distance euclidienne est une méthode courante pour mesurer la distance en ligne droite entre deux points. Votre tâche consiste à implémenter une fonction qui calcule cette distance entre deux tableaux NumPy unidimensionnels (1D).

La formule de la distance euclidienne entre deux vecteurs a et b est la suivante :

d(a, b) = \sqrt{\sum\_{i=1}^{n}(a_i - b_i)^2}

À faire

  • Complétez la fonction euclidean_distance dans le fichier euclidean_distance.py.

Exigences

  • La fonction doit s'appeler euclidean_distance.
  • Elle doit accepter deux tableaux NumPy 1D, a et b, de même longueur.
  • Elle doit renvoyer un nombre à virgule flottante (float) représentant la distance euclidienne entre eux.

Exemple

Après l'implémentation, lancez le script pour voir le résultat :

python3 euclidean_distance.py

Sortie :

Point a: [1 2 3]
Point b: [4 5 6]
Euclidean distance: 5.196152422706632
Expected: 5.196152422706632
✨ Vérifier la solution et pratiquer

Résumé

Dans ce défi, vous avez pratiqué les opérations fondamentales de NumPy. Vous avez implémenté des fonctions pour la multiplication élément par élément, le produit matriciel, la transposition de tableaux, le redimensionnement et le calcul de la distance euclidienne. Ces compétences sont essentielles pour l'analyse de données, l'apprentissage automatique (machine learning) et le calcul scientifique en Python.