نام‌پای

**نام‌پای**  یک بستهٔ نرم‌افزاری قابل افزودن به پایتون است که کاربرد اصلی‌اش در مقاصد علمی و برای کار با اعداد است. پایتون به صورت پیش‌فرض تنها از آرایه‌ها و متغیرها برای عملیات ریاضی ساده پشتیبانی می‌کند. بستهٔ نام‌پای ویژهٔ کار با اعداد از راه ماتریس‌ها و آرایه‌های چندبعدی طراحی شده است. از ویژگی‌های آرایه‌ها در نام‌پای این است که می‌توان اندازهٔ آن‌ها را به صورت پویا تغییر داد که این امر به افزایش سرعت برنامه‌نویسی کمک می‌کند. نام‌پای را می‌توان بستهٔ بنیادی پایتون برای محاسبات علمی دانست، این بسته افزون بر فراهم‌آوردن قابلیت کار با آرایه‌های اِن-بعدی، عملگرهای درایه به درایه و عملگرهای اصلی جبر خطی، قابلیت لفاف‌پیچی کدهای سی، سی++ و فورترن را ممکن می‌سازد.

با استفاده از آرایه‌های ان‌بعدی (ndarray) نام‌پای، می‌توان بر محدودیت‌های لیست‌های پایتون (list) که تنها با استفاده از حلقه‌های تکرار می‌توان بر روی آن‌ها کار کرد، غلبه نمود و بازدهی را بالا برد. تنها محدودیت مهم آرایه‌های اِن‌بعدی نام‌پای در مقایسه با لیست‌های پایتون در این است که باید حتماً نوع داده‌های موجود در درایه‌های آن یکسان باشند. در مقابل سرعت انجام عملیاتی که با استفاده از آرایه‌های ان‌بعدی اجرا می‌شود بیشتر است.

## نصب
امکان نصب نام‌پای از راه دریافت کد متن آن و کامپایل دستی وجود دارد، اما برای این کار کاربر باید با مراحل کامپایل برنامه از متن آشنایی کامل داشته باشد. از ساده‌ترین راه‌ها نصب نام‌پای می‌توان به استفاده از بسته‌های از پیش کامپایل‌شدهٔ *توزیع پایتون انتوت* و *اکتیو پایتون* اشاره کرد که هر دوی آن‌ها در سه بستر ویندوز، مک و لینوکس قابل نصب هستند و هر دو دارای نسخهٔ رایگان هستند. کاربران مک‌پورتز و توزیع‌های مختلف لینوکس می‌توانند نام‌پای را از راه مدیر بسته نصب کنند، اما نصب نام‌پای در ویندوز با توجه به پیچیدگی فرایند کامپایل ممکن است کمی مشکل باشد که برای این منظور یک نصب باینری کامپایل‌شده به نام python(x,y) ویژهٔ ویندوز موجود است.

## مثال‌ها
;ساخت آرایه

```numpy
>>> import numpy as np
>>> x = np.array([1, 2, 3])
>>> x
array([1, 2, 3])
>>> y = np.arange(10)  # یک آرایه را برمی‌گرداند
>>> y
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
```


;عملیات مقدماتی

```numpy
>>> a = np.array([1, 2, 3, 6])
>>> b = np.linspace(0, 2, 4)  # بین اعداد ۰ تا ۲ با فاصله‌های یکسان یک آرایه با چهار عضو ایجاد می‌کند.
>>> c = a - b
>>> c
array([ 1.        ,  1.33333333,  1.66666667,  4.        ])
>>> a**2
array([ 1,  4,  9, 36])
```


;توابع عمومی

```numpy
>>> a = np.linspace(-np.pi, np.pi, 100)
>>> b = np.sin(a)
>>> c = np.cos(a)
```


;جبر خطی

```numpy
>>> from numpy.random import rand
>>> from numpy.linalg import solve, inv
>>> a = np.array([[1, 2, 3], [3, 4, 6.7], [5, 9.0, 5]])
# ترانهاده ماتریس
>>> a.transpose()
array([[1. ,  3. ,  5. ],
       [ 2. ,  4. ,  9. ],
       [ 3. ,  6.7,  5.]])
# معکوس ماتریس
>>> inv(a)
array([[-2.27683616,  0.96045198,  0.07909605],
       [ 1.04519774, -0.56497175,  0.1299435 ],
       [ 0.39548023,  0.05649718, -0.11299435]])
>>> b =  np.array([3, 2, 1])
# ax=b حل معادله
>>> solve(a, b)
array([-4.83050847,  2.13559322,  1.18644068])
# ماتریس ۳ در ۳ اعداد تصادفی
>>> c = rand(3, 3)
>>> c
array([[3.98732789,   2.47702609,   4.71167924],
       [  9.24410671,   5.5240412 ,  10.6468792 ],
       [ 10.38136661,   8.44968437,  15.17639591]])
# ضرب ماتریسی
>>> np.dot(a, c)
array([[3.98732789,   2.47702609,   4.71167924],
       [  9.24410671,   5.5240412 ,  10.6468792 ],
       [ 10.38136661,   8.44968437,  15.17639591]])
# ضرب ماتریسی (این امکان برای پایتون ۳٫۵ و نام‌پای ۱٫۱۰ به بعد فعال است)
>>> a @ c
array([[3.98732789,   2.47702609,   4.71167924],
       [  9.24410671,   5.5240412 ,  10.6468792 ],
       [ 10.38136661,   8.44968437,  15.17639591]])
```


## سای‌پای
سای‌پای یک بستهٔ علمی دیگر برای پایتون است که مبتنی بر نام‌پای نوشته شده و اجازهٔ انجام عملیات ریاضی پیشرفته مانند انتگرال‌گیری، حل معادلات دیفرانسیل معمولی، توابع ویژه، بهینه‌سازی و بسیاری موارد دیگر را می‌دهد.

## کتابهای فارسی یادگیری نامپای
کتاب و منبع فارسی زیادی در زمینه یادگیری کتابخانه نام‌پای وجود ندارد. با این حال خوشبختانه انتشارات دانشگاه خوارزمی کتابی جامع از این کتابخانه پایتون تحت عنوان "مسیرداده کاوی درپایتون: یادگیری کتابخانه نامپای" را در سال 1403 چاپ کرده است. این کتاب تالیف عبدالرسول مستاجران، محسن بهلولی زفره و سهامه محمدی می‌باشد. 
.
بخشهایی از این کتاب به رایگان در بخش کتاب گوگل (گوگل بوک) در دسترس علاقمندان است.

## جستارهای وابسته
* فهرست نرم‌افزارهای محاسبات عددی
* سای‌پای
* کتابخانه مت‌پلات

## واژه‌نامه

## منابع

* 
* 

## پیوند به بیرون
* 

رده:زبان‌های برنامه‌نویسی آرایه‌ای
رده:زبان‌های برنامه‌نویسی عددی
رده:کتابخانه‌های علمی پایتون
رده:نرم‌افزارهای تحلیل عددی لینوکس
رده:نرم‌افزارهای تحلیل عددی ویندوز
رده:نرم‌افزارهای ریاضی آزاد
رده:نرم‌افزارهای علمی آزاد
رده:نرم‌افزارهایی که از پروانه بی‌اس‌دی استفاده می‌کنند
رده:نرم‌افزارهای آزاد نوشته‌شده با پایتون
رده:ابزارهای برنامه‌نویسی کامپیوتر
رده:پایتون (زبان برنامه‌نویسی)
رده:چارچوب‌های نرم‌افزاری تحت وب