From 9f334f1cf5260da8ad87d5c3eb84613c9462cc10 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:26 +1000 Subject: [PATCH 01/12] Update translation: lectures/about_py.md --- lectures/about_py.md | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/lectures/about_py.md b/lectures/about_py.md index c9a2ec9..b606270 100644 --- a/lectures/about_py.md +++ b/lectures/about_py.md @@ -61,7 +61,6 @@ Dans ce cours, nous allons Vous n'avez **pas** besoin de tout comprendre dans ce cours -- nous détaillerons les points progressivement plus tard dans la série de cours. - ### Ne puis-je pas simplement utiliser des LLM ? Non ! @@ -78,7 +77,6 @@ Vous devrez être l'architecte et le superviseur -- et pour ces tâches, vous de Cela dit, un bon LLM est un compagnon utile pour ces cours -- essayez de copier-coller du code de cette série et de demander une explication. - ### MATLAB n'est-il pas meilleur ? Non, non, et cent fois non. @@ -93,8 +91,6 @@ De plus, tous les grands LLM sont plus compétents pour écrire du code Python q Nous discuterons des mérites relatifs des bibliothèques de Python tout au long de cette série de cours, ainsi que dans notre série ultérieure sur [JAX](https://jax.quantecon.org/intro.html). - - ## Présentation de Python [Python](https://www.python.org) est un langage de programmation à usage général conçu en 1989 par [Guido van Rossum](https://en.wikipedia.org/wiki/Guido_van_Rossum). @@ -107,7 +103,6 @@ C'est important parce que cela * signifie que Python est contrôlé par la communauté des utilisateurs plutôt que par une entreprise à but lucratif, et * encourage la reproductibilité et la [science ouverte](https://en.wikipedia.org/wiki/Open_science). - ### Usages courants {index}`Python ` est un langage à usage général utilisé dans presque tous les domaines d'application, notamment @@ -132,7 +127,6 @@ Il est utilisé et largement soutenu par de grandes entreprises technologiques, * [Reddit](https://www.reddit.com/) * etc. - ### Popularité relative Python est l'un des -- si ce n'est le -- [langages de programmation les plus populaires](https://www.tiobe.com/tiobe-index/). @@ -146,9 +140,7 @@ Par exemple, le graphique suivant issu de Stack Overflow Trends montre comment l ```{figure} /_static/lecture_specific/about_py/pytorch_vs_matlab.png ``` -Pytorch n'est que l'une des nombreuses bibliothèques Python pour l'apprentissage profond et l'IA. - - +PyTorch n'est que l'une des nombreuses bibliothèques Python pour l'apprentissage profond et l'IA. ### Fonctionnalités @@ -160,7 +152,6 @@ Ce noyau est soutenu par de nombreuses bibliothèques, que l'on peut étudier au Python est flexible et pragmatique, prenant en charge plusieurs styles de programmation (procédural, orienté objet, fonctionnel, etc.). - ### Syntaxe et conception ```{index} single: Python; syntax and design @@ -251,8 +242,6 @@ print(f"Average: {total / count if count else 'No valid data'}") ``` - - ### Le lien avec l'IA L'IA est en train de prendre en charge de nombreuses tâches actuellement effectuées par des humains, tout comme d'autres formes de machines l'ont fait au cours des derniers siècles. @@ -265,7 +254,6 @@ Même si vous ne prévoyez pas de travailler sur l'IA et l'apprentissage automat Ces cours vous expliqueront comment. - ## Programmation scientifique avec Python ```{index} single: scientific programming @@ -286,7 +274,6 @@ L'utilisation de Python est également en hausse en économie, en finance et dan Cette section présente brièvement quelques exemples d'utilisation de Python pour la programmation scientifique générale. - ### NumPy ```{index} single: scientific programming; numeric @@ -341,12 +328,11 @@ Nous pouvons également effectuer de nombreuses autres tâches, comme Nous en discuterons les détails plus tard dans la série de cours, où nous couvrons NumPy en profondeur. - ### Alternatives à NumPy Bien que NumPy soit toujours le roi du traitement de tableaux en Python, il existe désormais d'importants concurrents. -Des bibliothèques telles que [JAX](https://github.com/jax-ml/jax), [Pytorch](https://pytorch.org/) et [CuPy](https://cupy.dev/) disposent également de types de tableaux et d'opérations sur les tableaux intégrés qui peuvent être très rapides et efficaces. +Des bibliothèques telles que [JAX](https://github.com/jax-ml/jax), [PyTorch](https://pytorch.org/) et [CuPy](https://cupy.dev/) disposent également de types de tableaux et d'opérations sur les tableaux intégrés qui peuvent être très rapides et efficaces. En fait, ces bibliothèques sont meilleures pour exploiter la parallélisation et le matériel rapide, comme nous l'expliquerons plus tard dans cette série. @@ -386,7 +372,6 @@ Vous pouvez toutes les voir [ici](https://docs.scipy.org/doc/scipy/reference/ind Plus tard, nous discuterons de SciPy plus en détail. - ### Graphiques ```{index} single: Matplotlib @@ -428,7 +413,6 @@ Parmi les autres bibliothèques graphiques figurent Vous pouvez visiter la [Python Graph Gallery](https://python-graph-gallery.com/) pour plus d'exemples de tracés réalisés à l'aide de diverses bibliothèques. - ### Réseaux et graphes L'étude des [réseaux](https://networks.quantecon.org/) devient une partie importante du travail scientifique en économie, en finance et dans d'autres domaines. @@ -482,7 +466,6 @@ nx.draw_networkx_nodes(g, plt.show() ``` - ### Autres bibliothèques scientifiques Comme indiqué ci-dessus, il existe littéralement des milliers de bibliothèques scientifiques pour Python. @@ -506,4 +489,4 @@ Voici une courte liste de quelques bibliothèques scientifiques importantes pour * [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) pour extraire des données de fichiers HTML et XML -Dans cette série de cours, nous apprendrons à utiliser bon nombre de ces bibliothèques pour des tâches de calcul scientifique en économie et en finance. \ No newline at end of file +Dans cette série de cours, nous apprendrons à utiliser bon nombre de ces bibliothèques pour des tâches de calcul scientifique en économie et en finance. From 3bd363ad8d3b9ab709f48d85012c97af9f3a5f45 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:27 +1000 Subject: [PATCH 02/12] Update translation: .translate/state/about_py.md.yml --- .translate/state/about_py.md.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.translate/state/about_py.md.yml b/.translate/state/about_py.md.yml index 1248ae8..76c1031 100644 --- a/.translate/state/about_py.md.yml +++ b/.translate/state/about_py.md.yml @@ -1,6 +1,6 @@ -source-sha: 3213613a05778899068ddb92336dfe6a58517936 -synced-at: "2026-07-14" -model: claude-opus-4-8 -mode: NEW +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-18" +model: claude-sonnet-5 +mode: UPDATE section-count: 3 -tool-version: 0.15.0 +tool-version: 0.26.0 From f550425390bf0f1f646a65c58228890ad8802837 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:28 +1000 Subject: [PATCH 03/12] Update translation: lectures/autodiff.md --- lectures/autodiff.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lectures/autodiff.md b/lectures/autodiff.md index 4207dfe..84c8472 100644 --- a/lectures/autodiff.md +++ b/lectures/autodiff.md @@ -32,7 +32,6 @@ translation: # Aventures avec la différentiation automatique - ```{include} _admonition/gpu.md ``` @@ -369,11 +368,11 @@ Générons quelques données simulées : ```{code-cell} ipython3 n = 100 key = jax.random.key(1234) -x = jax.random.uniform(key, (n,)) +key, x_key, ϵ_key = jax.random.split(key, 3) +x = jax.random.uniform(x_key, (n,)) α, β, σ = 0.5, 1.0, 0.1 # Fixe la vraie ordonnée à l'origine et la vraie pente. -key, subkey = jax.random.split(key) -ϵ = jax.random.normal(subkey, (n,)) +ϵ = jax.random.normal(ϵ_key, (n,)) y = α * x + β + σ * ϵ ``` @@ -536,4 +535,4 @@ plt.show() ```{solution-end} -``` \ No newline at end of file +``` From 0a4b96f6041da1a004d2e4f3db4ca571b6cf2d36 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:28 +1000 Subject: [PATCH 04/12] Update translation: .translate/state/autodiff.md.yml --- .translate/state/autodiff.md.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.translate/state/autodiff.md.yml b/.translate/state/autodiff.md.yml index 1f1f6c1..53a3418 100644 --- a/.translate/state/autodiff.md.yml +++ b/.translate/state/autodiff.md.yml @@ -1,6 +1,6 @@ -source-sha: 05ce95691fd97e48da39dd6d58fe032c03e8813d -synced-at: "2026-07-14" -model: claude-opus-4-8 -mode: NEW +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-18" +model: claude-sonnet-5 +mode: UPDATE section-count: 5 -tool-version: 0.15.0 +tool-version: 0.26.0 From 3db6f799f1926d1573844d076e69422e6ba27b36 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:29 +1000 Subject: [PATCH 05/12] Update translation: lectures/pandas.md --- lectures/pandas.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lectures/pandas.md b/lectures/pandas.md index 7f33f1b..40b645d 100644 --- a/lectures/pandas.md +++ b/lectures/pandas.md @@ -101,11 +101,12 @@ Commençons par les Series. Nous commençons par créer une série de quatre observations aléatoires ```{code-cell} ipython3 -s = pd.Series(np.random.randn(4), name='daily returns') +rng = np.random.default_rng() +s = pd.Series(rng.standard_normal(4), name='daily returns') s ``` -Ici, vous pouvez imaginer les indices `0, 1, 2, 3` comme indexant quatre sociétés cotées, et les valeurs étant les rendements quotidiens de leurs actions. +Ici, on peut imaginer les indices `0, 1, 2, 3` comme indexant quatre sociétés cotées, et les valeurs étant les rendements quotidiens de leurs actions. Les `Series` de pandas sont construites par-dessus les tableaux NumPy et prennent en charge de nombreuses opérations similaires @@ -134,7 +135,7 @@ s Vues de cette manière, les `Series` sont comme des dictionnaires Python rapides et efficaces (avec la restriction que tous les éléments du dictionnaire ont le même type — dans ce cas, des flottants). -En fait, vous pouvez utiliser une grande partie de la même syntaxe que les dictionnaires Python +En fait, on peut utiliser une grande partie de la même syntaxe que les dictionnaires Python ```{code-cell} ipython3 s['AMZN'] From f303354f28c45c4d910d9ae3026c2943d7682792 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:30 +1000 Subject: [PATCH 06/12] Update translation: .translate/state/pandas.md.yml --- .translate/state/pandas.md.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.translate/state/pandas.md.yml b/.translate/state/pandas.md.yml index 0f35088..53a3418 100644 --- a/.translate/state/pandas.md.yml +++ b/.translate/state/pandas.md.yml @@ -1,6 +1,6 @@ -source-sha: aacff3815993e8bea8db7b63df72a0a038e220c1 -synced-at: "2026-08-05" +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-18" model: claude-sonnet-5 mode: UPDATE section-count: 5 -tool-version: 0.25.0 +tool-version: 0.26.0 From 22168417916433e2c5769beded1161a816366f2f Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:30 +1000 Subject: [PATCH 07/12] Update translation: lectures/pandas_panel.md --- lectures/pandas_panel.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lectures/pandas_panel.md b/lectures/pandas_panel.md index ed2dbea..b870396 100644 --- a/lectures/pandas_panel.md +++ b/lectures/pandas_panel.md @@ -85,7 +85,7 @@ pays et l'assigner à `realwage`. L'ensemble de données est accessible via le lien suivant : ```{code-cell} ipython3 -url1 = 'https://github.com/QuantEcon/data-lectures/raw/main/lectures/realwage.csv' +url1 = 'https://raw.githubusercontent.com/QuantEcon/data-lectures/main/lectures/realwage.csv' ``` ```{code-cell} ipython3 @@ -203,7 +203,7 @@ le continent de chaque pays à `realwage_f` avec la fonction `merge`. L'ensemble de données est accessible via le lien suivant : ```{code-cell} ipython3 -url2 = 'https://github.com/QuantEcon/data-lectures/raw/main/lectures/countries.csv' +url2 = 'https://raw.githubusercontent.com/QuantEcon/data-lectures/main/lectures/countries.csv' ``` ```{code-cell} ipython3 @@ -511,7 +511,7 @@ d'emploi en Europe par âge et par sexe provenant d'[Eurostat](https://ec.europa L'ensemble de données est accessible via le lien suivant : ```{code-cell} ipython3 -url3 = 'https://github.com/QuantEcon/data-lectures/raw/main/lectures/employ.csv' +url3 = 'https://raw.githubusercontent.com/QuantEcon/data-lectures/main/lectures/employ.csv' ``` La lecture du fichier CSV retourne un ensemble de données de panel au format long. Utilisez `.pivot_table()` pour construire From c1965ce88ca1e772038d829886a045d1c6e891dd Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:31 +1000 Subject: [PATCH 08/12] Update translation: .translate/state/pandas_panel.md.yml --- .translate/state/pandas_panel.md.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.translate/state/pandas_panel.md.yml b/.translate/state/pandas_panel.md.yml index e721191..2069697 100644 --- a/.translate/state/pandas_panel.md.yml +++ b/.translate/state/pandas_panel.md.yml @@ -1,6 +1,6 @@ -source-sha: 4cacd9a2d34a306abeb9383dbbe08be02e29011d -synced-at: "2026-07-17" +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-18" model: claude-sonnet-5 mode: UPDATE section-count: 6 -tool-version: 0.16.1 +tool-version: 0.26.0 From a3cdc1f3595897a3b208637cce6c243bfc23d896 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:31 +1000 Subject: [PATCH 09/12] Update translation: lectures/polars.md --- lectures/polars.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lectures/polars.md b/lectures/polars.md index 67720f0..0d147d9 100644 --- a/lectures/polars.md +++ b/lectures/polars.md @@ -95,7 +95,8 @@ Commençons par les Series. Nous commençons par créer une série de quatre observations aléatoires ```{code-cell} ipython3 -s = pl.Series(name='daily returns', values=np.random.randn(4)) +rng = np.random.default_rng() +s = pl.Series(name='daily returns', values=rng.standard_normal(4)) s ``` @@ -131,7 +132,7 @@ Par exemple, pour associer des symboles boursiers à des rendements : ```{code-cell} ipython3 df = pl.DataFrame({ 'company': ['AMZN', 'AAPL', 'MSFT', 'GOOG'], - 'daily returns': np.random.randn(4) + 'daily returns': rng.standard_normal(4) }) df ``` @@ -480,13 +481,13 @@ une moyenne pondérée groupée. ```{code-cell} ipython3 n = 5_000_000 -np.random.seed(42) +rng = np.random.default_rng(42) -groups = np.random.choice(['A', 'B', 'C', 'D'], n) -values = np.random.randn(n) -weights = np.random.rand(n) -extra1 = np.random.randn(n) -extra2 = np.random.randn(n) +groups = rng.choice(['A', 'B', 'C', 'D'], n) +values = rng.standard_normal(n) +weights = rng.random(n) +extra1 = rng.standard_normal(n) +extra2 = rng.standard_normal(n) big_pd = pd.DataFrame({ 'group': groups, 'value': values, @@ -702,7 +703,7 @@ Calculons les variations en pourcentage à l'aide d'expressions Polars : ```{code-cell} ipython3 price_change = ticker.select([ - ((pl.col(tick).last() / pl.col(tick).first() - 1) * 100) + ((pl.col(tick).drop_nulls().last() / pl.col(tick).drop_nulls().first() - 1) * 100) .alias(tick) for tick in ticker_list.keys() ]).transpose( From 78cfb14750bfdfa2c28383388815a27052832b1c Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:32 +1000 Subject: [PATCH 10/12] Update translation: .translate/state/polars.md.yml --- .translate/state/polars.md.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.translate/state/polars.md.yml b/.translate/state/polars.md.yml index a91ee7a..2069697 100644 --- a/.translate/state/polars.md.yml +++ b/.translate/state/polars.md.yml @@ -1,6 +1,6 @@ -source-sha: fb389e7722b4f70fce7835bd773df8eea2de9744 -synced-at: "2026-08-04" +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-18" model: claude-sonnet-5 mode: UPDATE section-count: 6 -tool-version: 0.24.0 +tool-version: 0.26.0 From 716a9fe1223a70ff4f727a0315f68f540ea0d770 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:33 +1000 Subject: [PATCH 11/12] Update translation: lectures/python_by_example.md --- lectures/python_by_example.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lectures/python_by_example.md b/lectures/python_by_example.md index 9f84bc3..76538ad 100644 --- a/lectures/python_by_example.md +++ b/lectures/python_by_example.md @@ -190,19 +190,22 @@ Il devient alors plus difficile de déterminer de quelle bibliothèque provient ### Tirages aléatoires -Pour revenir à notre programme qui trace le bruit blanc, les trois lignes restantes +Pour revenir à notre programme qui trace le bruit blanc, les quatre lignes restantes après les instructions d'importation sont ```{code-cell} ipython +rng = np.random.default_rng() ϵ_values = rng.standard_normal(100) plt.plot(ϵ_values) plt.show() ``` -La première ligne génère 100 tirages (quasi) indépendants d'une loi normale centrée réduite et les stocke +La première ligne crée un générateur de nombres aléatoires `rng`. + +La deuxième ligne génère 100 tirages (quasi) indépendants d'une loi normale centrée réduite et les stocke dans `ϵ_values`. -Les deux lignes suivantes génèrent le graphique. +Les deux dernières lignes génèrent le graphique. Nous verrons plus loin différentes façons de configurer et d'améliorer ce graphique. From 10db6b331e0e72c359e02e0ea8e89cf6c4d6c7ad Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Tue, 18 Aug 2026 13:42:33 +1000 Subject: [PATCH 12/12] Update translation: .translate/state/python_by_example.md.yml --- .translate/state/python_by_example.md.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.translate/state/python_by_example.md.yml b/.translate/state/python_by_example.md.yml index 36f469d..2069697 100644 --- a/.translate/state/python_by_example.md.yml +++ b/.translate/state/python_by_example.md.yml @@ -1,6 +1,6 @@ -source-sha: aacff3815993e8bea8db7b63df72a0a038e220c1 -synced-at: "2026-08-05" +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-18" model: claude-sonnet-5 mode: UPDATE section-count: 6 -tool-version: 0.25.0 +tool-version: 0.26.0