Numpy کتابخانه ای است که در سال 2005 توسط Travis Oliphant بوجود آمده است و به صورت متن باز در اختیار کاربران قرار گرفته است و می توان به صورت رایگان از آن استفاده نمود و مخفف Numerical Python است. بخشی از این کتابخانه با زبان پایتون نوشته شده است ولی قسمت هایی که نیازمند محاسبات سریع می باشد با زبان C++,C نوشته شده است. Numpy آرایه های چند بعدی خیلی بزرگ و ماتریس ها را پشتیبانی می کند. و ایندکس گذاری آن از صفر شروع می شود  و تمامی عناصر باید هم جنس باشند. و دارای قابلیت cross-platform بودن است. و یکی از اصلی ترین پکیج ها برای بحث محاسبات علمی با پایتون می باشد.  که در کار با آرایه ها و ماتریس ها و بردارها کاربردی است.

علاوه بر آن شامل توابع ای برای کار با مفاهیمی چون جبر خطی، تبدیل فوریه و ماتریس ها و تولید داده های تصادفی است. می توان به عنوان container چند بعدی از داده های generic از آن استفاده کرد و چون تمامی انواع داده ها را می توان در آن قرار داد، از این رو با دیتابیس های متنوع به سرعت قابل یکپارچه سازی است. کاربرد وسیع  این کتابخانه در یادگیری ماشین، ریاضیات و مهندسی برق و محاسبات با سرعت بالا و شبیه سازها است. پکیج های معروفی مثل tensorflow, scikit-learn از آرایه های این کتابخانه به عنوان ورودی استفاده می کنند.

در زبان برنامه نویسی پایتون لیست هایی طراحی شده است که اهداف پردازشی مان را در ارتباط با آرایه ها محقق می سازد ولی این کتابخانه نوعی از آرایه را فراهم می کند که 50 بار سریعتر از آرایه طراحی شده در زبان پایتون است. این کتابخانه عملکردی قابل مقایسه با نرم افزار متلب ارائه می دهد و هر دوی آنها مفسری هستند.

ذخیره سازی داده ها در Numpy:

این کتابخانه آرایه را در محلی پیوسته در حافظه ذخیره می کند که این عمل باعث دسترسی و اعمال تغییر سریعتری می گردد و علاوه بر آن حافظه کمتری را اشغال می کند. که با مثال زیر این موضوع به صورت عملی روشن می گردد:

import numpy as np
import sys

s = range(100000)
print("The amount of space without Numpy:",
      "{:,}".format(sys.getsizeof(s) * len(s)))

d = np.arange(100000)
print("The amount of space with Numpy:",
      "{:,}".format(d.size * d.itemsize))
Output: The amount of space without Numpy: 4,800,000
The amount of space with Numpy: 400,000

مشکلات Numpy:

این کتابخانه هم مانند سایر کتابخانه ها علاوه بر نقاط مثبت دارای نقاط منفی و محدودیت هایی می باشد که در زیر به برخی از آنها اشاره می شود. درج یا ضمیمه کردن آیتمی به لیست Numpy مانند لیست های موجود در زبان پایتون به راحتی صورت نمی گیرد. مثلا در هنگام استفاده از دستور (…)pad مراحل کار به اینصورت می باشد که ابتدا آرایه ایی به اندازه کل فضایی که لازم است تا عملیات الحاق صورت گیرد، ایجاد می شود و سپس داده ها در آن کپی شده و خروجی برگردانده می شود. و همچنین در دستور concatenate(array1, array2) نیز به این صورت است و دو آرایه به هم چسبانده نمی شوند بلکه یک آرایه جدید که در آنها داده های هر دو آرایه پشت سرهم کپی شده است به عنوان خروجی برگردانده می شود.

نصب Numpy:

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

Pip install numpy