نام‌پای

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

با استفاده از آرایه‌های ان‌بعدی (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]])

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

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

واژه‌نامه

منابع

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

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