diff --git a/.translate/state/functions.md.yml b/.translate/state/functions.md.yml index a001602..a7e3565 100644 --- a/.translate/state/functions.md.yml +++ b/.translate/state/functions.md.yml @@ -1,6 +1,6 @@ -source-sha: 1b356ab5e60d8f6939446fd5f47c243593a2abd3 -synced-at: "2026-07-14" -model: claude-opus-4-8 -mode: NEW +source-sha: aacff3815993e8bea8db7b63df72a0a038e220c1 +synced-at: "2026-08-05" +model: claude-sonnet-5 +mode: UPDATE section-count: 7 -tool-version: 0.15.0 +tool-version: 0.25.0 diff --git a/.translate/state/pandas.md.yml b/.translate/state/pandas.md.yml index 56e1f5e..0f35088 100644 --- a/.translate/state/pandas.md.yml +++ b/.translate/state/pandas.md.yml @@ -1,6 +1,6 @@ -source-sha: 02e57a5befc2a9a081019edc748aba15e4b2f02a -synced-at: "2026-07-14" -model: claude-opus-4-8 -mode: NEW +source-sha: aacff3815993e8bea8db7b63df72a0a038e220c1 +synced-at: "2026-08-05" +model: claude-sonnet-5 +mode: UPDATE section-count: 5 -tool-version: 0.15.0 +tool-version: 0.25.0 diff --git a/.translate/state/python_by_example.md.yml b/.translate/state/python_by_example.md.yml index 0544039..36f469d 100644 --- a/.translate/state/python_by_example.md.yml +++ b/.translate/state/python_by_example.md.yml @@ -1,6 +1,6 @@ -source-sha: 3241a07f00b1fb4d2bebc6989d1f480847e08e31 -synced-at: "2026-07-14" -model: claude-opus-4-8 -mode: NEW +source-sha: aacff3815993e8bea8db7b63df72a0a038e220c1 +synced-at: "2026-08-05" +model: claude-sonnet-5 +mode: UPDATE section-count: 6 -tool-version: 0.15.0 +tool-version: 0.25.0 diff --git a/lectures/functions.md b/lectures/functions.md index 7e3f2b6..60d4bff 100644 --- a/lectures/functions.md +++ b/lectures/functions.md @@ -95,7 +95,6 @@ type(22) La liste complète des fonctions intégrées de Python se trouve [ici](https://docs.python.org/3/library/functions.html). - ### Fonctions tierces Si les fonctions intégrées ne couvrent pas nos besoins, nous devons soit importer @@ -281,7 +280,6 @@ quad(lambda x: x**3, 0, 2) Ici, la fonction créée par `lambda` est dite *anonyme* car elle n'a jamais reçu de nom. - ### Pourquoi écrire des fonctions ? Les fonctions définies par l'utilisateur sont importantes pour améliorer la clarté de votre code en @@ -470,7 +468,7 @@ Ce qui se passe ici, c'est que chaque appel successif utilise son propre *cadre* * un cadre est l'endroit où sont conservées les variables locales d'un appel de fonction donné * la pile est la mémoire utilisée pour traiter les appels de fonction - * une file d'attente First In Last Out (FILO) + * une structure de données dernier entré, premier sorti (LIFO) Cet exemple est quelque peu artificiel, car la première solution (itérative) serait généralement préférée à la solution récursive. @@ -634,7 +632,6 @@ draw_new(3) ```{solution-end} ``` - ## Exercices avancés Dans les exercices suivants, nous écrirons ensemble des fonctions récursives. @@ -714,4 +711,4 @@ print([recursion_factorial(i) for i in range(1, 10)]) ``` ```{solution-end} -``` \ No newline at end of file +``` diff --git a/lectures/pandas.md b/lectures/pandas.md index fa6ee67..7f33f1b 100644 --- a/lectures/pandas.md +++ b/lectures/pandas.md @@ -357,10 +357,10 @@ df.loc[complexCondition] La capacité d'effectuer des modifications dans les dataframes est importante pour générer un jeu de données propre en vue d'analyses futures. -**1.** Nous pouvons utiliser `df.where()` de manière pratique pour « conserver » les lignes que nous avons sélectionnées et remplacer les autres lignes par n'importe quelles autres valeurs +**1.** Nous pouvons utiliser `df.where()` de manière pratique pour « conserver » les lignes que nous avons sélectionnées et remplacer les autres lignes par `NaN` ```{code-cell} ipython3 -df.where(df.POP >= 20000, False) +df.where(df.POP >= 20000) ``` **2.** Nous pouvons simplement utiliser `.loc[]` pour spécifier la colonne que nous voulons modifier, et attribuer des valeurs @@ -388,7 +388,7 @@ df.apply(update_row, axis=1) ```{code-cell} ipython3 # Arrondit tous les nombres décimaux à 2 décimales -df.map(lambda x : round(x,2) if type(x)!=str else x) +df.map(lambda x : round(x,2) if not isinstance(x, str) else x) ``` **Application : Imputation des valeurs manquantes** @@ -411,8 +411,8 @@ Nous pouvons utiliser à nouveau la méthode `.map()` pour remplacer toutes les ```{code-cell} ipython3 # remplace toutes les valeurs NaN par 0 def replace_nan(x): - if type(x)!=str: - return 0 if np.isnan(x) else x + if not isinstance(x, str): + return 0 if pd.isna(x) else x else: return x @@ -544,7 +544,7 @@ Dans le second cas, vous pouvez soit * passer à une autre machine * résoudre votre problème de proxy en lisant [la documentation](https://requests.readthedocs.io/en/latest/) -En supposant que tout fonctionne, vous pouvez maintenant utiliser l'objet `source` renvoyé par l'appel `requests.get('https://research.stlouisfed.org/fred2/series/UNRATE/downloaddata/UNRATE.csv')` +En supposant que tout fonctionne, vous pouvez maintenant construire l'objet `source` à partir des données renvoyées par l'appel `requests.get(url)` ```{code-cell} ipython3 url = 'https://fred.stlouisfed.org/graph/fredgraph.csv?bgcolor=%23e1e9f0&chart_type=line&drp=0&fo=open%20sans&graph_bgcolor=%23ffffff&height=450&mode=fred&recession_bars=on&txtcolor=%23444444&ts=12&tts=12&width=1318&nt=0&thu=0&trc=0&show_legend=yes&show_axis_titles=yes&show_tooltip=yes&id=UNRATE&scale=left&cosd=1948-01-01&coed=2024-06-01&line_color=%234572a7&link_values=false&line_style=solid&mark_type=none&mw=3&lw=2&ost=-99999&oet=99999&mma=0&fml=a&fq=Monthly&fam=avg&fgst=lin&fgsnd=2020-02-01&line_index=1&transformation=lin&vintage_date=2024-07-29&revision_date=2024-07-29&nd=1948-01-01' @@ -812,4 +812,4 @@ plt.tight_layout() ```{solution-end} ``` -[^mung]: Wikipédia définit le « munging » comme le nettoyage de données d'une forme brute vers une forme structurée et épurée. \ No newline at end of file +[^mung]: Wikipédia définit le « munging » comme le nettoyage de données d'une forme brute vers une forme structurée et épurée. diff --git a/lectures/python_by_example.md b/lectures/python_by_example.md index a803665..e45d8ad 100644 --- a/lectures/python_by_example.md +++ b/lectures/python_by_example.md @@ -55,7 +55,6 @@ Les notions plus avancées seront abordées dans les chapitres suivants. Vous devriez avoir lu le {doc}`cours ` sur la prise en main de Python avant de commencer celui-ci. - ## Objectif : simuler et représenter un processus de bruit blanc Supposons que nous voulions simuler et tracer le processus de bruit blanc @@ -115,7 +114,6 @@ np.sqrt(4) np.log(4) ``` - #### Pourquoi autant d'importations ? Les programmes Python nécessitent généralement plusieurs instructions d'importation. @@ -125,7 +123,6 @@ La raison en est que le cœur du langage est délibérément maintenu petit, afi Lorsque vous voulez faire quelque chose d'intéressant avec Python, vous avez presque toujours besoin d'importer des fonctionnalités supplémentaires. - #### Packages ```{index} single: Python; Packages @@ -279,7 +276,7 @@ x Ici `append()` est ce qu'on appelle une **méthode**, c'est-à-dire une fonction « attachée à » un objet --- dans ce cas, la liste `x`. -Nous étudierons les méthodes plus en détail dans un {doc}`chapitre ultérieur `. Pour le moment, retenons simplement que : +Nous étudierons les méthodes plus en détail dans un {doc}`chapitre ultérieur `. Pour le moment, retenons simplement que : * Les objets Python tels que les listes, les chaînes de caractères, etc. ont tous des méthodes utilisées pour manipuler les données contenues dans l'objet. * Les objets chaînes de caractères ont des [méthodes de chaîne](https://docs.python.org/3/library/stdtypes.html#string-methods), les objets listes ont des [méthodes de liste](https://docs.python.org/3/tutorial/datastructures.html#more-on-lists), etc. @@ -351,7 +348,6 @@ L'interpréteur Python effectue ce qui suit : * Pour chaque élément de la `sequence`, il « lie » le nom `variable_name` à cet élément puis exécute le bloc de code. - ### Une remarque sur l'indentation ```{index} single: Python; Indentation @@ -400,12 +396,12 @@ plt.plot(ϵ_values) plt.show() ``` -Une boucle while exécute le bloc de code délimité par l'indentation tant que la condition (```i < ts_length```) est vraie. +Une boucle while exécute le bloc de code délimité par l'indentation tant que la condition (`i < ts_length`) est satisfaite. -Dans ce cas, le programme continuera d'ajouter des valeurs à la liste ```ϵ_values``` jusqu'à ce que ```i``` soit égal à ```ts_length``` : +Dans ce cas, le programme continuera d'ajouter des valeurs à la liste `ϵ_values` jusqu'à ce que `i` soit égal à `ts_length` : ```{code-cell} python3 -i == ts_length # la condition de fin de la boucle while +i == ts_length #la condition de fin de la boucle while ``` Notez que