نم-بايNumPy هي احد مكتبات البايثون و هي تتميز بتنفيذ العمليات الحسابية على المصفوفات arrays.
تستخدم نم-باي NumPy للتعامل مع 3 اشكال رئيسية من المصفوفات وهي: ذات البعد الواحد 1D و ذات البعدين 2D وذات الثلاث ابعاد 3D.
تشبه مصفوفات نم-باي NumPy القوائم في لغة بايثون، لكن تتميز بانها تحتوي على العديد من الدوال functions و الطرق methods التي تمكن من تنفيذ العمليات الحسابية على المصفوفات بسرعة وكفاءة.
استيراد import المكتبة
قبل استخدام المكتبة يجب استيراد import المكتبة كالاتي:
تشغيلimport numpy as np
عادة يتم استعمال الاسم المستعار np للمكتبة اثناء كتابة البرامج.
انشاء المصفوفات
نستطيع تحويل قوائم بايثون lists الى مصفوفات numpy كالاتي:
تشغيلa = np.array([1,2,3]) _a = [5,6,7] a = np.array(_a)
نستطيع ايضا انشاء بعض المصفوفات ذات القيم الاولية مثل انشاء مصفوفة ذات عدد عناصر معين و كل عناصرها اصفار:
a = np.zeros(3)
او مصفوفة ذات عدد عناصر معينة وكل قيمها واحد “1”:
a = np.ones(5)
او مصفوفة قيم عناصرها ارقام عشوائية:
a = np.random.random(5)
تتميز مكتبة numpy بتوفير العديد من الدوال الحسابية التي نتسطيع اجراءها بسهولة و كفاءة بين المصفوفات وبعضها
العمليات بين المصفوفات
توفر numpy عدد من العمليات مثل الجمع والطرح وغيرها بين المصفوفات، لنفترض مصفوفتان بالقيم الاتية:
تشغيلa = np.array([5,6,7]) b = np.array([2,2,2])
العملية | المؤثر | مثال |
---|---|---|
الجمع | + | a + b |
الطرح | – | a - b |
الضرب | * | a * b |
القسمة | / | a / b |
الدوال الحسابية
نستطيع اجراء العديد من الدوال الحسابية على قيم المصفوفة، لنفترض مصفوفة بالقيم الاتية:
تشغيلa = np.array([1,4,9])
الدالة الحسابية | الدالة | مثال |
---|---|---|
الجذر التربيعي | ()np.sqrt | np.sqrt(a) |
الاس | ()np.power | np.power(a,2) |
الاس الطبيعي e | ()np.exp | np.exp(a) |
اللوغاريتم الطبيعي | ()np.log | np.log(a) |
دوال التجميع Aggregation
هي مجموعة من الدوال التي توفرها numpy مثل جمع قيم المصفوفة او ايجاد المتوسط الحسابي وغيرها، لنفترض قيم المصفوفة الاتية
تشغيلa = np.array([2,7,8,6,1])
الدالة الحسابية | الدالة | مثال |
---|---|---|
الجمع | np.sum | np.sum(a) |
المتوسط الحسابي | np.mean | np.mean(a) |
اكبر قيمة | np.max | np.max(a) |
اصغر قيمة | np.min | np.min(a) |
التقطيع Slicing
التقطيع Slicing يقصد به استقطاع / الوصول الى اجزاء من المصفوفات بناءا على شروط ما، لنفترض مصفوفة بالقيم الاتية:
تشغيلa = np.array([1, 4 , 6, 12, 3, 5])
نستطيع الوصول الى العنصر الثالث (رقم تسلسله 2، حيث يبدأ التسلسل من 0) في المصفوفة:
a[2]
استقطاع جزء من المصفوفة بناءا على رقم التسلسل:
a[1:3]
في المثال السابق نستقطع العناصر من العنصر الثاني (رقم التسلسل 1) الى العنصر الثالث، عند الاستقطاع (تسلسل البداية،تسلسل النهاية) لا يتم استقطاع عنصر تسلسل النهاية.
استقطاع جزء بداية من تسلسل معين الى نهاية المصفوفة:
a[2:]
استقطاع جزء بداية من اول المصفوفة الى تسلسل معين:
a[:3]
استقطاع جزء من المصفوفة بناءا على شرط معين:
a[a<5]
في المثال السابق سوف يتم استقطاع العناصر التي قيمتها اصغر من 5.
جزاك الله خيرا
شرح مبسط ومفهوم