Science des données en Python

L’objectif de cet atelier est d’apprendre à utiliser Python pour :

  • faire des tracés de courbes mathématiques et les exploiter

  • analyser des données

💻 Travail n° 1 Installation de l’environnement virtuel Python pour le co-enseignement mathématique

💻 Travail n° 2 Tracé simple

À partir des exemples donnés dans le paragraphe “Utilisation basique” du cours, donner le code Python qui permet de tracer l’une au dessus de l’autre dans la même figure les 2 fonctions

fnct power2

et

fnct expinverse

la fonction exponentielle de Numpy se nomme exp().

Ex. : y = np.exp(x)

Résultat attendu :

fnct power2 and expinverse

💻 Travail n° 3 Annotation de graphique

À partir de la documentation officielle de la méthode plot() link ou de tout autre ressource de votre choix, donner le code Python qui permet d’aboutir au graphique suivant :

fnct log sqrt

💻 Travail n° 4 Vectorisation

On considère la fonction “porte” suivante :

fonction porte

On désire tracer sa représentation avec Matplotlib :

plot fonction porte

On saisi donc le code suivant :

fonction-porte.py
import numpy as np
import matplotlib.pyplot as plt

def porte(x):
    if np.abs(x) <= 0.5:
        return 1
    else :
        return 0

if __name__ == "__main__":

    x = np.linspace(-2,+2,100)

    y = porte(x)

    fig, ax = plt.subplots()
    ax.plot(x, y)

    plt.show()

🎯 Travail à faire :

  1. Exécuter le code fourni.
    Fonctionne-t-il comme attendu ?

  2. Le problème provient du fait que la fonction porte() n’est pas “vectorisée”, c’est-à-dire que Python n’est pas capable de l’appliquer à tous les éléments d’un tableau Numpy vu le code qui la compose.

    Parcourir le document Vectorisation link pour en apprendre plus sur ce concept.

  3. Corriger le code en vectorisant la fonction porte() à l’aide de la fonction vectorize() de Numpy.
    Vérifier que vous obtenez bien le tracé donné plus haut.

    La solution peut être adaptée de la partie Problème de la fonction absolute() du document de la question 2.

💻 Travail n° 5 Analyse de données

  1. Télécharger localement le fichier tmin-tmax-marseille-052021.csv qui contient l’ensemble des températures minimales et maximales relevées chaque jour du mois d’avril 2021 à Marseille.

  2. Inspecter le contenu de ce fichier et répondre aux questions

    Ce fichier est au format csv (pour coma separated values c.-à-d. “valeurs séparées par des virgules”).

    1. À quoi correspond chaque ligne ?

    2. Quel caractère est utilisé en tant que séparateur décimal pour les températures ?

  3. Créer un script Python qui chargera dans un ndarray l’ensemble des températures minimales et maximales relevées chaque jour du mois d’avril 2021 à Marseille depuis le fichier tmin-tmax-marseille-052021.csv.

    Pour cela, vous pourrez utiliser la fonction loadtxt() de Numpy :

    Exemple:
    tempMarseille = np.loadtxt('tmin-tmax-marseille-052021.csv', delimiter=',', skiprows=1) (1)
    1 charge les données du fichier dans le ndarray tempMarseille en utilisant le ‘,’ comme séparateur des valeurs et en omettant la 1èreligne qui contient le titre des colonnes
  4. Consulter la documentation des fonctions mathématiques de Numpy (→ Mathematical functions link) ainsi que celles des fonctions statistiques (→ Statistics link) et déterminer dans votre script :

    • la température la plus basse du mois

    • la température la plus élevée du mois

    • la température maximale la plus froide observée au cours du mois au plus chaud de la journée

    • les moyennes (mean en anglais) des températures minimales et maximales sur le mois

  5. Tracer sur une même courbe pour l’ensemble du mois les températures minimales, maximales et moyennes pour chaque journée.

    plot tmin tmax marseille
    Figure 1. Résultat attendu

🞄  🞄  🞄