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

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

نصب
---

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

مثال‌ها
-------

ساخت آرایه

```
>>> 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])

```

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

```
>>> 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])

```

توابع عمومی

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

```

جبر خطی

```
>>> 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]])

```

سای‌پای
-------

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

جستارهای وابسته
---------------

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

واژه‌نامه
---------

1. ↑  Wrap
2. ↑  Enthought Python Distribution (EPD)
3. ↑  ActivePython (AP)

منابع
-----

1. ↑  Bressert، *SciPy and NumPy: An Overview for Developers*، ۱.
2. ↑  Bressert، *SciPy and NumPy: An Overview for Developers*، ۵.
3. ↑  Bressert، *SciPy and NumPy: An Overview for Developers*، ۵.
4. ↑  Bressert، *SciPy and NumPy: An Overview for Developers*، ۳.
5. ↑  Bressert، *SciPy and NumPy: An Overview for Developers*، ۲.

* Bressert, Eli (2012). *SciPy and NumPy: An Overview for Developers* (به انگلیسی). O'Reilly Media.

پیوند به بیرون
--------------

* وبگاه رسمی

| * ن
* ب
* و
پایتون (زبان برنامه‌نویسی) |
| --- |
| محیط یکپارچه توسعه نرم‌افزار و ویرایشگر‌ها | 
* جینی
* آیدل
* وینگ
* پای‌دو
* مونودولاپ
* اکلیپس
* اسپایدر
* پای‌چارم

 |
| کتابخانه‌ها | 
* پای‌کیوت
* پای‌جی‌تی‌کی
* تکینتر

 |
| کتابخانه‌های علمی | 
* کتابخانه مت‌پلات
* نام‌پای
* پانداس (نرم‌افزار)
* سای‌پای
* سای‌کیت

 |
| فریم‌ورک‌های وب پایتون | 
* جانگو
* CherryPy
* فلسک

 |
| 
* **رده:پایتون (زبان برنامه‌نویسی)**

 |