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 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 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 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 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 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 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. 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 +``` 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'] 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 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( 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.