Skip to article frontmatterSkip to article content

Quand les exercices font partie d’une série d’exercices, faites les dans l’ordre, ils se servent des précédents...*

mosaique (un peu de tout)

Importer numpy et pandas indiquer la version des bibliothèques

# votre code ici

Importer pyplot de matplotlib et mettez les plots en mode notebook

# votre code ici

[note importante]
avec le mode notebook, il est souvent utile de déclarer explicitement que la cellule va produire une figure avec plt.figure() (ou autre fonction qui crée une figure ou des sous-figures)
sinon votre dessin va être inséré dans la dernière figure ouverte, souvent c’est plus haut dans le notebook...

# par exemple, faites
plt.figure()
# avant de faire 
plt.plot(X, Y)
# ...

Exercices sur la suite de Syracuse

La suite de Syracuse

pour chaque nNn\in \mathbb{N^*}, on définit une suite de Syracuse par:

Les consignes

  1. la suite s’arrête après le premier 1

  2. lever une exception si le type de l’argument n’est pas valide (TypeError), pensez à utiliser isinstance

  3. lever une exception si la valeur de l’argument n’est pas valide (ValueError)

  1. mettez un docstring à la fonction

Implémentation de la suite de Syracuse

par exemple

>>> syracuse(10)
[10, 5, 16, 8, 4, 2, 1]

Exécutions:

# EXERCICE
def syracuse(n):
    # votre code ici
    pass
# pour vérifier
syracuse(10) == [10, 5, 16, 8, 4, 2, 1]
False
# pour vérifier
try:
    syracuse("toto")
except TypeError:
    print("OK your code raises TypeError on a str")
# pour vérifier
try:
    syracuse(-12)
except ValueError:
    print("OK your code raises TypeError on a str")

Plotter la suite de Syracuse

[indications]:

[rappels]:

inputs = (4, 8, 12, 5, 10, 20)
# à vous

...
Ellipsis

Exercice: vectorization de fonctions

[indications]

# votre code ici

def abs (n):
    # votre code ici
    pass

# votre code ici
# x = ...
# abs(x)
# pensez à rattraper l'erreur

3D plotting

# votre code ici

Travail sur des fichiers csv

[consigne]

Lecture de fichiers csv

Lecture d’un (petit) csv sans noms de colonnes

# à vous
df1 = ...
df1
Ellipsis
# ceci doit afficher True
df1.shape == (7, 3)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[13], line 2
      1 # ceci doit afficher True
----> 2 df1.shape == (7, 3)

AttributeError: 'ellipsis' object has no attribute 'shape'

Lecture d’un (petit) csv avec des lignes de commentaires mais sans noms de colonnes

# le contenu du fichier 

%cat data/weight_height_no_comments.csv
ce fichier comporte le genre, la taille et le poids
de personnes, se trouve sur kaggle dans la page
https://www.kaggle.com/mustafaali96
Male;71.6408051192206;213.741169489411
Male;64.7663291334055;167.127461073476
Male;69.2830700967204;189.446181386738
Male;69.2437322298112;186.434168021239
Male;67.6456197004212;172.186930058117
Male;72.4183166259878;196.028506330482
Male;63.974325721061;172.883470208780
Male;69.6400598997523;185.983957573130
Male;67.9360048540095;182.426648013226
# à vous
df2 = ...
# ceci doit afficher True
(
    df2.shape == (9, 3)
and df2.columns[0] == 'Gender'
)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[16], line 3
      1 # ceci doit afficher True
      2 (
----> 3     df2.shape == (9, 3)
      4 and df2.columns[0] == 'Gender'
      5 )

AttributeError: 'ellipsis' object has no attribute 'shape'

Lecture d’un (gros) fichier csv avec le nom des colonnes et sans commentaires

# votre code ici
df = ...
df.head()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[18], line 1
----> 1 df.head()

AttributeError: 'ellipsis' object has no attribute 'head'
# ceci doit afficher True
(
    df.shape == (10000, 3)
and df.columns[0] == 'Gender'
)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[19], line 3
      1 # ceci doit afficher True
      2 (
----> 3     df.shape == (10000, 3)
      4 and df.columns[0] == 'Gender'
      5 )

AttributeError: 'ellipsis' object has no attribute 'shape'

Informations générales sur une DataFrame

on veut en savoir plus sur cette DataFrame df précédente

affichez les types des colonnes

# à vous

affichez un résumé / des informations générales

# à vous

Manipulations des colonnes de la DataFrame

Conversions

# votre code ici 
# et n'hésitez pas à recharger le fichier
# pour partir d'un truc propre

...
# df.head()
Ellipsis

Ajout d’une colonne

# votre code ici n'hésitez pas à recharger le fichier
# pour partir d'un truc propre

df = ...
df.head()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[24], line 1
----> 1 df.head()

AttributeError: 'ellipsis' object has no attribute 'head'

Catégorisation

# votre code ici n'hésitez pas à recharger le fichier
# pour partir d'un truc propre

# df = ...
df.head()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[26], line 1
----> 1 df.head()

AttributeError: 'ellipsis' object has no attribute 'head'
df.dtypes
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[27], line 1
----> 1 df.dtypes

AttributeError: 'ellipsis' object has no attribute 'dtypes'

Calculs sur une colonne

# à vous
# à vous
# à vous

Plots de colonnes de la DataFrame

Les boxplots

  1. tracer le boxplot de la colonne height

  2. tracer le boxplot de la colonne weight

# à vous

Les femmes par poids

# à vous

Tri de colonnes et plots

# à vous
# à vous
# à vous

NaN

Lecture du csv

# à vous de jouer

cars = ...
cars.head(5)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[37], line 1
----> 1 cars.head(5)

AttributeError: 'ellipsis' object has no attribute 'head'
# votre code
# à vous
# à vous de jouer
# à vous de jouer

Nombres de NaN

# votre code
# à vous de jouer

Suppression de NaN

indices

# votre code ici
# votre code ici
# votre code ici
# votre code ici