diff --git a/.translate/state/autodiff.md.yml b/.translate/state/autodiff.md.yml index a0fb3c0..53a3418 100644 --- a/.translate/state/autodiff.md.yml +++ b/.translate/state/autodiff.md.yml @@ -1,6 +1,6 @@ -source-sha: 05ce95691fd97e48da39dd6d58fe032c03e8813d -synced-at: "2026-04-08" -model: claude-sonnet-4-6 -mode: NEW +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-18" +model: claude-sonnet-5 +mode: UPDATE section-count: 5 -tool-version: 0.22.0 +tool-version: 0.26.0 diff --git a/.translate/state/numpy.md.yml b/.translate/state/numpy.md.yml index 06cf199..054067f 100644 --- a/.translate/state/numpy.md.yml +++ b/.translate/state/numpy.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: 8 -tool-version: 0.25.0 +tool-version: 0.26.0 diff --git a/.translate/state/pandas.md.yml b/.translate/state/pandas.md.yml index 322727c..53a3418 100644 --- a/.translate/state/pandas.md.yml +++ b/.translate/state/pandas.md.yml @@ -1,4 +1,4 @@ -source-sha: 55c87c9fdbdb522866c5b6bbdc65c073941d7f16 +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 synced-at: "2026-08-18" model: claude-sonnet-5 mode: UPDATE 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 81b3af0..2069697 100644 --- a/.translate/state/polars.md.yml +++ b/.translate/state/polars.md.yml @@ -1,4 +1,4 @@ -source-sha: 55c87c9fdbdb522866c5b6bbdc65c073941d7f16 +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 synced-at: "2026-08-18" model: claude-sonnet-5 mode: UPDATE 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/autodiff.md b/lectures/autodiff.md index e83bebe..905d72c 100644 --- a/lectures/autodiff.md +++ b/lectures/autodiff.md @@ -32,7 +32,6 @@ translation: # ماجراهایی با مشتق‌گیری خودکار - ```{include} _admonition/gpu.md ``` @@ -355,11 +354,11 @@ def grad_descent(f, # Function to be minimized ```{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 # Set the true intercept and slope. -key, subkey = jax.random.split(key) -ϵ = jax.random.normal(subkey, (n,)) +ϵ = jax.random.normal(ϵ_key, (n,)) y = α * x + β + σ * ϵ ``` @@ -519,4 +518,4 @@ plt.show() ``` ```{solution-end} -``` \ No newline at end of file +``` diff --git a/lectures/numpy.md b/lectures/numpy.md index f98a956..e38a3f0 100644 --- a/lectures/numpy.md +++ b/lectures/numpy.md @@ -1255,7 +1255,11 @@ class DiscreteRV: def __init__(self, q, seed=None): """ آرگومان q یک آرایه NumPy است، یا شبیه آرایه، غیر منفی و جمع - به 1 می‌شود + به 1 می‌شود. + + آرگومان seed دانه تولیدکننده اعداد تصادفی زیربنایی را تنظیم + می‌کند؛ با مقدار پیش‌فرض seed=None، نمونه‌ها بین اجراهای + مختلف قابل بازتولید نیستند. """ self.q = q self.Q = cumsum(q) @@ -1431,7 +1435,7 @@ print(A) **قسمت 2**: به سمت تکرار نتیجه عملیات broadcasting زیر حرکت کنید. در عین حال، سرعت broadcasting و حلقه `for` که پیاده‌سازی می‌کنید را مقایسه کنید. -برای این قسمت از تمرین می‌توانید از توابع `tic`/`toc` از کتابخانه `quantecon` برای زمان‌سنجی اجرا استفاده کنید. +برای این قسمت از تمرین می‌توانید از context manager به نام `qe.Timer()` از کتابخانه `quantecon` برای زمان‌سنجی اجرا استفاده کنید. بیایید مطمئن شویم که این کتابخانه نصب شده است. diff --git a/lectures/pandas.md b/lectures/pandas.md index ea20062..4225cc3 100644 --- a/lectures/pandas.md +++ b/lectures/pandas.md @@ -100,7 +100,8 @@ import requests با ایجاد یک سری از چهار مشاهده تصادفی شروع می‌کنیم ```{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 ``` diff --git a/lectures/pandas_panel.md b/lectures/pandas_panel.md index b349146..260f9db 100644 --- a/lectures/pandas_panel.md +++ b/lectures/pandas_panel.md @@ -81,7 +81,7 @@ sns.set_theme() مجموعه داده با لینک زیر قابل دسترسی است: ```{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 @@ -183,7 +183,7 @@ realwage_f.head() مجموعه داده با لینک زیر قابل دسترسی است: ```{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 @@ -451,7 +451,7 @@ plt.show() مجموعه داده با لینک زیر قابل دسترسی است: ```{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' ``` خواندن فایل CSV یک مجموعه داده پانلی در فرمت طولانی را برمی‌گرداند. از `.pivot_table()` برای ساخت یک dataframe با فرمت عریض با یک `MultiIndex` در ستون‌ها استفاده کنید. diff --git a/lectures/polars.md b/lectures/polars.md index ebe2714..abd4378 100644 --- a/lectures/polars.md +++ b/lectures/polars.md @@ -95,7 +95,8 @@ import matplotlib.pyplot as plt ابتدا سری‌ای از چهار مشاهده تصادفی می‌سازیم ```{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 @@ s.describe() ```{code-cell} ipython3 df = pl.DataFrame({ 'company': ['AMZN', 'AAPL', 'MSFT', 'GOOG'], - 'daily returns': np.random.randn(4) + 'daily returns': rng.standard_normal(4) }) df ``` @@ -358,7 +359,9 @@ plt.show() ```{code-cell} ipython3 # Reload the dataset -url = 'https://github.com/QuantEcon/data-lectures/raw/main/lectures/test_pwt.csv' +url = ('https://raw.githubusercontent.com/QuantEcon/' + 'lecture-python-programming/main/lectures/_static/' + 'lecture_specific/pandas/data/test_pwt.csv') df_full = pl.read_csv(url) ``` @@ -434,7 +437,9 @@ import pandas as pd import time # Small dataset -- Penn World Tables (~8 rows) -url = 'https://github.com/QuantEcon/data-lectures/raw/main/lectures/test_pwt.csv' +url = ('https://raw.githubusercontent.com/QuantEcon/' + 'lecture-python-programming/main/lectures/_static/' + 'lecture_specific/pandas/data/test_pwt.csv') small_pd = pd.read_csv(url) small_pl = pl.read_csv(url) ``` @@ -696,7 +701,7 @@ ticker = read_data_polars(ticker_list) ```{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 27490b5..b3cfd71 100644 --- a/lectures/python_by_example.md +++ b/lectures/python_by_example.md @@ -186,16 +186,19 @@ sqrt(4) ### نمونه گیری تصادفی -بیاید به کدی که نویز سفید رسم می کند برگردیم. سه خط بعد از دستور Import به این صورت هستند: +بیاید به کدی که نویز سفید رسم می کند برگردیم. چهار خط بعد از دستور Import به این صورت هستند: ```{code-cell} ipython +rng = np.random.default_rng() ϵ_values = rng.standard_normal(100) plt.plot(ϵ_values) plt.show() ``` -خط اول 100 عدد نرمال استاندارد (تقریبا) مستقل تولید می کند و آن ها را در متغیر `ϵ_values` ذخیره می کند. +خط اول یک تولیدکننده عدد تصادفی به نام `rng` می سازد. + +خط دوم 100 عدد نرمال استاندارد (تقریبا) مستقل تولید می کند و آن ها را در متغیر `ϵ_values` ذخیره می کند. -دو خط بعدی نمودار را رسم می کنند. +دو خط آخر نمودار را رسم می کنند. در ادامه، روش های مختلفی را بررسی خواهیم کرد تا بتوانیم این نمودار را بهتر تنظیم و بهینه سازی کنیم.