You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
بدون شک، پایتون یکی از [محبوب ترین زبان های برنامه نویسی](https://www.tiobe.com/tiobe-index/) است و کتابخانه های پایتون مانند [pandas](https://pandas.pydata.org/) و [Polars](https://pola.rs/) جایگزین ابزارهای آشنایی همچون Excel و VBA هستند که به عنوان یک مهارت ضروری در زمینه های مالی و بانکی محسوب می شوند.
یکی از مهم ترین بخش های محاسبات علمی کار با داده است. داده ها اغلب در ماتریس ها، بردارها و آرایه ها ذخیره می شوند و ما میتوانیم یک آرایه ی ساده از اعداد را با پایتون خالص به صورت زیر ایجاد کنیم:
249
263
250
264
```{code-cell} python3
@@ -254,7 +268,7 @@ a
254
268
255
269
این آرایه ی بسیار کوچک نشان می دهد که کار با پایتون خالص بسیار راحت است. اما وقتی می خواهیم با آرایه های بزرگتری در برنامه های واقعی کار کنیم، به کارایی بیشتر و ابزارهای بیشتری نیاز داریم. بنابراین، برای اینکار باید از کتابخانه ها برای کار با آرایه ها استفاده کنیم.
256
270
257
-
برای پایتون، مهمترین کتابخانه ی پردازش ماتریس و آرایه، کتابخانه [NumPy](http://www.numpy.org/) است. به عنوان مثال بیاید یک آرایه با 100 عنصر را با NumPy بسازیم:
271
+
برای پایتون، مهمترین کتابخانه ی پردازش ماتریس و آرایه، کتابخانه [NumPy](https://numpy.org/) است. به عنوان مثال بیاید یک آرایه با 100 عنصر را با NumPy بسازیم:
258
272
259
273
```{code-cell} python3
260
274
import numpy as np # Load the library
@@ -280,12 +294,12 @@ b @ c
280
294
281
295
### جایگزین های NumPy
282
296
283
-
درحالیکه هنوز سلطان پردازش آرایه ها در پایتون NumPy است، اما اکنون رقبای جدیدی نیز دارد؛ کتابخانه هایی مانند [CuPy](https://cupy.dev/)، [Pytorch](https://pytorch.org/)، [JAX](https://github.com/google/jax) نیز انواع آرایه ها و عملیات آرایه ای را تعبیه کرده اند و می توانند بسیار سریع و کارآمد باشند. همانطور که بعدا در این مجموعه توضیح خواهیم داد؛ در واقع این کتابخانه ها در استفاده از پردازش موازی و سخت افزار سریع، بهتر هستند. با این حال، شما هنوز هم باید ابتدا NumPy را یاد بگیرید، زیرا؛ ساده تر است و یک پایه ی قوی را فراهم می کند، به طور مستقیم عملکرد کتابخانه هایی مانند JAX را گسترش می دهد و از اینرو وقتی NumPy را می شناسید، یادگیری آن را نیز آسان تر می کند.
297
+
درحالیکه هنوز سلطان پردازش آرایه ها در پایتون NumPy است، اما اکنون رقبای جدیدی نیز دارد؛ کتابخانه هایی مانند [CuPy](https://cupy.dev/)، [Pytorch](https://pytorch.org/)، [JAX](https://github.com/jax-ml/jax) نیز انواع آرایه ها و عملیات آرایه ای را تعبیه کرده اند و می توانند بسیار سریع و کارآمد باشند. همانطور که بعدا در این مجموعه توضیح خواهیم داد؛ در واقع این کتابخانه ها در استفاده از پردازش موازی و سخت افزار سریع، بهتر هستند. با این حال، شما هنوز هم باید ابتدا NumPy را یاد بگیرید، زیرا؛ ساده تر است و یک پایه ی قوی را فراهم می کند، به طور مستقیم عملکرد کتابخانه هایی مانند JAX را گسترش می دهد و از اینرو وقتی NumPy را می شناسید، یادگیری آن را نیز آسان تر می کند.
284
298
285
299
(tuple_unpacking_example)=
286
300
### SciPy
287
301
288
-
کتابخانه [SciPy](http://www.scipy.org) بر روی NumPy ساخته شده است و قابلیت های اضافی را ارائه می دهد.
302
+
کتابخانه [SciPy](https://scipy.org/) بر روی NumPy ساخته شده است و قابلیت های اضافی را ارائه می دهد.
289
303
290
304
برای مثال بیاید حساب کنیم جاییکه <mathxmlns="http://www.w3.org/1998/Math/MathML">
291
305
<msubsup>
@@ -317,53 +331,58 @@ value
317
331
کتابخانه ی SciPy شامل بسیاری از امور استاندارد کاربردی مانند [جبرخطی](https://docs.scipy.org/doc/scipy/reference/linalg.html)، [انتگرال گیری](https://docs.scipy.org/doc/scipy/reference/integrate.html)، [درون یابی](https://docs.scipy.org/doc/scipy/reference/interpolate.html)، [بهینه سازی](https://docs.scipy.org/doc/scipy/reference/optimize.html)، [توزیع ها و تکنیک های آماری](https://docs.scipy.org/doc/scipy/reference/stats.html) و [پردازش سیگنال](https://docs.scipy.org/doc/scipy/reference/signal.html) است که می توانید همه ی آنها را [اینجا](https://docs.scipy.org/doc/scipy/reference/index.html) ببینید.
318
332
319
333
بعدا SciPy را با جزئیات بیشتری توضیح خواهیم داد.
320
-
### گرافیک
321
-
322
-
نقطه ی قوت اصلی پایتون تجسم داده ها است. محبوب ترین و جامع ترین کتابخانه ی پایتون برای ایجاد شکل ها و نمودارها [Matplotlib](http://matplotlib.org/) است که شامل قابلیت های ایجاد تصاویر نمودارها، هیستوگرام ها، سطوح کانتور، نمودارهای سه بعدی، نمودارهای میله ای و... بوده و می تواند خروجی ها را در قالب های مختلف مانند (PDF، PNG، EPS و...) ارائه دهد و همچنین قابلیت ادغام LaTex را نیز دارد.
323
334
324
-
آنچه در ادامه می بینید مثال هایی از این کتابخانه هستند:
335
+
### گرافیک
325
336
326
-

337
+
```{index} single: Matplotlib
338
+
```
327
339
328
-
*نمونه طرح دو بعدی با حاشیه نویسی لاتکس تعبیه شده*
340
+
نقطه ی قوت اصلی پایتون تجسم داده ها است. محبوب ترین و جامع ترین کتابخانه ی پایتون برای ایجاد شکل ها و نمودارها [Matplotlib](https://matplotlib.org/) است که شامل قابلیت های ایجاد تصاویر نمودارها، هیستوگرام ها، سطوح کانتور، نمودارهای سه بعدی، نمودارهای میله ای و... بوده و می تواند خروجی ها را در قالب های مختلف مانند (PDF، PNG، EPS و...) ارائه دهد و همچنین قابلیت ادغام LaTex را نیز دارد.
329
341
330
-

342
+
آنچه در ادامه می بینید مثال هایی از این کتابخانه هستند:
همچنین می توانید نمونه های بیشتری را در [گالری تصاویر Matplotlib](https://matplotlib.org/stable/gallery/index.html) بیابید.
339
356
340
357
سایر کتابخانه های گرافیکی عبارتند از:
341
358
342
-
*[Plotly](https://plot.ly/python/)
343
-
344
-
*[seaborn](https://seaborn.pydata.org/)(یک رابط سطح بالا برای Matplotlib می باشد)
345
-
359
+
*[Plotly](https://plotly.com/python/)
360
+
*[seaborn](https://seaborn.pydata.org/) --- یک رابط سطح بالا برای Matplotlib
346
361
*[Altair](https://altair-viz.github.io/)
362
+
*[Bokeh](https://docs.bokeh.org/en/latest/)
347
363
348
-
*[Bokeh](http://bokeh.pydata.org/en/latest/) .
349
-
350
-
همچنین برای مشاهده نمونه های بیشتری از نمودارهای رسم شده با استفاده از کتابخانه های مختلف، می توانید به [گالری نمودارهای پایتون](https://www.python-graph-gallery.com/) مراجعه کنید.
364
+
همچنین برای مشاهده نمونه های بیشتری از نمودارهای رسم شده با استفاده از کتابخانه های مختلف، می توانید به [گالری نمودارهای پایتون](https://python-graph-gallery.com/) مراجعه کنید.
351
365
352
366
### شبکه ها و نمودارها
353
367
354
368
مطالعه ی شبکه ها و نمودارها بخش مهمی از کار علمی در اقتصاد، مالی و سایر زمینه ها است؛ به عنوان مثال، ما به مطالعه ی مواردی چون شبکه های تولید، شبکه های بانکی و موسسات مالی، شبکه های اجتماعی و... علاقه مند هستیم.
355
369
356
-
پایتون نیز کتابخانه های زیادی برای مطالعه ی شبکه ها و نمودارها دارد. یکی از معروف ترین این کتابخانه ها [NetworkX](http://networkx.github.io/) است که از جمله ویژگی های آن داشتن الگوریتم های استاندارد گراف برای تحلیل شبکه ها و فرآیندهای مربوط به نمایش نمودارها است.
370
+
پایتون نیز کتابخانه های زیادی برای مطالعه ی شبکه ها و نمودارها دارد.
371
+
372
+
```{index} single: NetworkX
373
+
```
374
+
375
+
یکی از معروف ترین این کتابخانه ها [NetworkX](https://networkx.org/) است که از جمله ویژگی های آن داشتن الگوریتم های استاندارد گراف برای تحلیل شبکه ها و فرآیندهای مربوط به نمایش نمودارها است.
357
376
358
377
در زیر نمونه ای از کد آورده شده است که یک گراف تصادفی ایجاد و رسم می کند که رنگ گره ها براساس طول کوتاه ترین مسیر از یک گره ی مرکزی مشخص تعیین می شود.
359
378
360
379
```{code-cell} ipython
361
380
import networkx as nx
362
381
import matplotlib.pyplot as plt
363
-
np.random.seed(1234)
382
+
rng = np.random.default_rng(1234)
364
383
365
384
# Generate a random graph
366
-
p = dict((i, (np.random.uniform(0, 1), np.random.uniform(0, 1)))
385
+
p = dict((i, (rng.uniform(0, 1), rng.uniform(0, 1)))
367
386
for i in range(200))
368
387
g = nx.random_geometric_graph(200, 0.12, pos=p)
369
388
pos = nx.get_node_attributes(g, 'pos')
@@ -391,21 +410,21 @@ plt.show()
391
410
392
411
در اینجا فهرست کوتاهی از چند کتابخانه ی علمی مهم برای پایتون که پیشتر نگفتیم برایتان آورده ایم:
393
412
394
-
*[SymPy](http://www.sympy.org/): برای جبر نمادین، از جمله محاسبه ی حد، مشتق و انتگرال
413
+
*[SymPy](https://www.sympy.org/): برای جبر نمادین، از جمله محاسبه ی حد، مشتق و انتگرال
395
414
396
-
*[statsmodels](http://statsmodels.sourceforge.net/): برای توابع آماری
415
+
*[statsmodels](https://www.statsmodels.org/): برای توابع آماری
397
416
398
-
*[scikit-learn](http://scikit-learn.org/): برای یادگیری ماشین
417
+
*[scikit-learn](https://scikit-learn.org/): برای یادگیری ماشین
399
418
400
419
*[Keras](https://keras.io/): برای یادگیری ماشین
401
420
402
-
*[Pyro](https://pyro.ai/) و [PyStan](https://pystan.readthedocs.org/en/latest/): برای تحلیل داده های بیزی
421
+
*[Pyro](https://pyro.ai/) و [PyStan](https://pystan.readthedocs.io/en/latest/): برای تحلیل داده های بیزی
403
422
404
423
*[GeoPandas](https://geopandas.org/en/stable/): برای تحلیل داده های مکانی
405
424
406
425
*[Dask](https://docs.dask.org/en/stable/): برای پردازش موازی
407
426
408
-
*[Numba](http://numba.pydata.org/): اجرای پایتون با سرعت برابر با کدهای سطح پایین قابل اجرا توسط سخت افزار
427
+
*[Numba](https://numba.pydata.org/): اجرای پایتون با سرعت برابر با کدهای سطح پایین قابل اجرا توسط سخت افزار
409
428
410
429
*[CVXPY](https://www.cvxpy.org/): برای بهینه سازی محدب
0 commit comments