diff --git a/.translate/state/autodiff.md.yml b/.translate/state/autodiff.md.yml index a0fb3c0..32920b0 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-12" +model: claude-sonnet-5 +mode: UPDATE section-count: 5 -tool-version: 0.22.0 +tool-version: 0.25.0 diff --git a/.translate/state/numpy.md.yml b/.translate/state/numpy.md.yml index 8ade694..94dc5d4 100644 --- a/.translate/state/numpy.md.yml +++ b/.translate/state/numpy.md.yml @@ -1,6 +1,6 @@ -source-sha: a2b929f15e703b6942e8b80a29011c51f234b1e0 -synced-at: "2026-05-13" -model: claude-sonnet-4-6 +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-12" +model: claude-sonnet-5 mode: UPDATE section-count: 8 -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 501d62e..32920b0 100644 --- a/.translate/state/pandas.md.yml +++ b/.translate/state/pandas.md.yml @@ -1,6 +1,6 @@ -source-sha: 811accdd4ed8803df3a7123ada3b560bc3110712 -synced-at: "2026-06-19" -model: claude-sonnet-4-6 +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-12" +model: claude-sonnet-5 mode: UPDATE section-count: 5 -tool-version: 0.15.0 +tool-version: 0.25.0 diff --git a/.translate/state/pandas_panel.md.yml b/.translate/state/pandas_panel.md.yml index e721191..4f87853 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-12" model: claude-sonnet-5 mode: UPDATE section-count: 6 -tool-version: 0.16.1 +tool-version: 0.25.0 diff --git a/.translate/state/polars.md.yml b/.translate/state/polars.md.yml index 13fcdbf..4f87853 100644 --- a/.translate/state/polars.md.yml +++ b/.translate/state/polars.md.yml @@ -1,6 +1,6 @@ -source-sha: 1c60c7df6e0c6fbebba3df2f7a9cb1b2c0e59172 -synced-at: "2026-07-30" +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-12" model: claude-sonnet-5 -mode: NEW +mode: UPDATE section-count: 6 -tool-version: 0.24.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 db54d15..4f87853 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-04-25" -model: claude-sonnet-4-6 +source-sha: d35eb831da23a763f43d403e96f20d43529cae53 +synced-at: "2026-08-12" +model: claude-sonnet-5 mode: UPDATE section-count: 6 -tool-version: 0.14.1 +tool-version: 0.25.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 22e9b9d..ccfa45c 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 21e737a..03b9542 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 6a16c42..7a0669c 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 ``` @@ -480,13 +481,13 @@ print(f"Small data -- pandas: {pd_small:.4f}s | Polars eager: {pl_small:.4f}s" ```{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 @@ 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( @@ -821,4 +822,4 @@ plt.show() ``` ```{solution-end} -``` \ No newline at end of file +``` diff --git a/lectures/python_by_example.md b/lectures/python_by_example.md index fda6a72..47e3391 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` ذخیره می کند. -دو خط بعدی نمودار را رسم می کنند. +دو خط آخر نمودار را رسم می کنند. در ادامه، روش های مختلفی را بررسی خواهیم کرد تا بتوانیم این نمودار را بهتر تنظیم و بهینه سازی کنیم.