Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions lectures/about_py.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
---
jupytext:
text_representation:
extension: .md
format_name: myst
kernelspec:
display_name: Python 3
language: python
name: python3
---

```{only} html
<div dir="rtl">
```

مقدمه ای بر پایتون

درباره ی این دوره
Expand Down Expand Up @@ -95,6 +110,10 @@ Google، Open AI،Netflix ، Meta، Dropbox، Amazon، Reddit و غیره.

**کد برنامه نویسی جاوا**

```{only} html
</div>
```

```java
import java.io.BufferedReader;
import java.io.FileReader;
Expand Down Expand Up @@ -136,9 +155,16 @@ public class CSVReader {
}
```

```{only} html
<div dir="rtl">
```

**کد برنامه نویسی پایتون**


```{only} html
</div>
```

```python
import csv
Expand All @@ -156,6 +182,10 @@ with open("data.csv", mode='r') as file:
print(f"Average: {total / count if count else 'No valid data'}")
```

```{only} html
<div dir="rtl">
```

# اتصال هوش مصنوعی

قطعا می دانید که هوش مصنوعی به سرعت در حال گسترش و پیشرفت است، مگر اینکه سالها درون غار زندگی کرده و از هرگونه تماس با دنیای مدرن اجتناب کرده باشید!
Expand All @@ -173,6 +203,11 @@ print(f"Average: {total / count if count else 'No valid data'}")
# NumPy

یکی از مهم ترین بخش های محاسبات علمی کار با داده است. داده ها اغلب در ماتریس ها، بردارها و آرایه ها ذخیره می شوند و ما میتوانیم یک آرایه ی ساده از اعداد را با پایتون خالص به صورت زیر ایجاد کنیم:

```{only} html
</div>
```

```python
a = [-3.14, 0, 3.14] # A Python list
a
Expand All @@ -181,17 +216,26 @@ a
[-3.14, 0, 3.14]
```

```{only} html
<div dir="rtl">
```

این آرایه ی بسیار کوچک نشان می دهد که کار با پایتون خالص بسیار راحت است. اما وقتی می خواهیم با آرایه های بزرگتری در برنامه های واقعی کار کنیم، به کارایی بیشتر و ابزارهای بیشتری نیاز داریم. بنابراین، برای اینکار باید از کتابخانه ها برای کار با آرایه ها استفاده کنیم.

برای پایتون، مهمترین کتابخانه ی پردازش ماتریس و آرایه، کتابخانه NumPy است. به عنوان مثال بیاید یک آرایه با 100 عنصر را با NumPy بسازیم:

```{only} html
</div>
```

```python
import numpy as np # Load the library

a = np.linspace(-np.pi, np.pi, 100) # Create even grid from -π to π

a
```

```
array([-3.14159265, -3.07812614, -3.01465962, -2.9511931 , -2.88772658,

Expand Down Expand Up @@ -233,21 +277,44 @@ array([-3.14159265, -3.07812614, -3.01465962, -2.9511931 , -2.88772658,

2.88772658, 2.9511931 , 3.01465962, 3.07812614, 3.14159265])
```

```{only} html
<div dir="rtl">
```

حالا بیاید این آرایه را با اعمال توابع تبدیل کنیم:

```{only} html
</div>
```

```python
b = np.cos(a) # Apply cosine to each element of a

c = np.sin(a) # Apply sin to each element of a
```

```{only} html
<div dir="rtl">
```

و حالا میتوانیم به راحتی حاصلضرب اسکالر b و c را بدست بیاوریم:

```{only} html
</div>
```

```python
b @ c
```
```
9.853229343548264e-16
```

```{only} html
<div dir="rtl">
```

همچنین میتوانیم با پایتون بسیاری از دستورات دیگر را انجام دهیم، مانند اینکه میانگین و واریانس آرایه ها را محاسبه کند، ماتریس بسازد و سیستم های خطی را حل کند، آرایه های تصادفی برای شبیه سازی ایجاد کند و... که جزئیات را در بخش های بعدی پوشش خواهیم داد.

# جایگزین های NumPy
Expand Down Expand Up @@ -275,6 +342,10 @@ b @ c
<mi>z</mi>
</math> توزیع نرمال استاندارد است:

```{only} html
</div>
```

```python
from scipy.stats import norm
from scipy.integrate import quad
Expand All @@ -287,6 +358,10 @@ value
0.9544997361036417
```

```{only} html
<div dir="rtl">
```

کتابخانه ی SciPy شامل بسیاری از امور استاندارد کاربردی مانند جبرخطی، یکپارچه سازی، درون یابی، بهینه سازی، توزیع ها و تکنیک های آماری و پردازش سیگنال است که بعدا در مورد آنها با جزئیات بیشتر صحبت خواهیم کرد.

# گرافیک
Expand Down Expand Up @@ -314,6 +389,10 @@ value

در زیر نمونه ای از کد آورده شده است که یک گراف تصادفی ایجاد و رسم می کند. رنگ گره ها براساس طول کوتاه ترین مسیر از یک گره ی مرکزی مشخص تعیین می شود.

```{only} html
</div>
```

```python
import networkx as nx
import matplotlib.pyplot as plt
Expand Down Expand Up @@ -341,8 +420,13 @@ nx.draw_networkx_nodes(g,
cmap=plt.cm.jet_r)
plt.show()
```

![نتیجه](images/7c437f98387eea82088cfa4a78bbdbf96ba625a77f4db1ceb5fc391941b56d78.png)

```{only} html
<div dir="rtl">
```

# سایرکتابخانه های علمی

همانطور که پیشتر گفته شد، درواقع هزاران کتابخانه ی علمی برای پایتون وجود دارد که برخی کوچک هستند و وظایف بسیارخاصی را انجام می دهند و برخی دیگر از نظر خطوط کد و سرمایه گذاری انجام شده روی آنها توسط کدنویس ها و شرکت های فناوری، بسیار بزرگ هستند.
Expand Down Expand Up @@ -372,3 +456,7 @@ Scikit-image و OpenCV: برای پردازش و تحلیل داده های تص
BeautifulSoup: XML و HTML برای استخراج داده ها از فایل های

در این مجموعه خواهیم آموخت که چگونه از بسیاری از این کتابخانه ها برای کارهای محاسباتی علمی در اقتصاد و امور مالی استفاده کنیم.

```{only} html
</div>
```
Loading