Python Programming بايثون

بايثون-26: شرح مكتبة NumPy الجزء الخامس


السلام عليكم

شرحنا في الدروس الاربعة الماضية الكثير من الادوات المفيدة التي توفرها مكتبة (NumPy) العلمية لتسهيل التعامل مع المصفوفات بلغة بايثون وارفقنا الروابط للكثير من الادوات الاخرى التي لم يتم شرحها لأن هناك المئات منها ولو اردنا شرحها كلها فسيستغرق ذلك مدة طويلة جداً ولذا سيكون هذا الجزء هو الاخير من اجزاء شرح مكتبة (NumPy) وسنرفق معه روابط لأمثلة تشرح بقية الادوات التي لن نشرحها ليستطيع المهتمون الرجوع لها عند الحاجة كما سنشرح اي اداه لم يتم شرحها في هذه الاجزاء الخمسة حين نصل الى التطبيق العملي ونحتاجها.

سنتناول في هذا الدرس المواضيع التالية:

  • فهارس المصفوفات والتلاعب بها واستخدامها بشكل متقدم.

  • دالة ix_()

  • دوال الجبر الخطي

  • مقارنة الانواع المختلفة للمصفوفات

  • دوال منوعة

لنبدأ على بركة الله

الفهارس وخدع استخدامها:

بالاضافة الى فهرسة المصفوفات بالطرق الاعتيادية السابقة فأنه يمكننا استخدام مصفوفة للفهارس وكما في الامثلة التالية:

1.png

اما اذا كانت مصفوفة الفهرس متعددة الابعاد فلأستخدامها لفهرسة مصفوفة احادية البعد فأن البعد الاول منها سيستخدم فقط وكما في المثال التالي الذي يبين كيفية تحويل اسماء الالوان في صورة الى الالوان:

2

ملاحظة: لدمج او التعامل مع مصفوفات مختلفة الابعاد يمكن توحيد اشكالها بأستخدام دالة (reshape) التي تم شرحها سابقاً.

يمكننا ايضاً اعطاء فهارس (indexes) لأكثر من بعد من ابعاد المصفوفة الا ان هذه الفهارس يجب ان تكون بنفس الحجم وكما في الامثلة التالية:

3

يمكن ايضاً استخدام فهارس تتكون من قيم منطقية (صفر او واحد ) او (صح او خطأ) وكما في الامثلة التالية:

4.png

دالة ix_()

وتستخدم لدمج متجهات مختلفة للحصول على نتيجة تحتوي ازواج مرتبة من مكونات المتجهات المختلفة وكما تبينه الامثلة التالية:

5

النوع الاخير من الفهرسة يتم بأستخدام السلاسل الرمزية ويمكن ايجاد تفاصيل اكثر عنه في الرابط التالي

string indexing

الجبر الخطي:

ويتم استخدامها بأستدعاء المكتبة الفرعية التالية:

from numpy.linalg import *

وهذه بعض الامثلة للدوال التي تدعمها هذه المكتبة:

a.transpose()  لأعطاء ترانسبز المصفوفة (الصفوف اعمدة والاعمدة صفوف)

inv(a)  لأعطاء معكوس المصفوفة inverse

eye(2) تعطي مصفوفة التعريف التي تحتوي واحد في القطر الرئيسي واصفار في بقية اجزائها والتي تبدو كما في ادناه:

1  0

0  1

dot(j,j)  لضرب المصفوفات ضرب نقطي dot product

solve(a,y)  حل المعادلة الخطية (y) لأيجاد قيمة (a)

trace(a)   مجموعة القيم في القطر الرئيسي للمصفوفة (a)

eig(b) ارجاع قيمة ال (eignvalue) للمصفوفة

ويمكن ايجاد تطبيق هذه الدوال في الامثلة التالية:

6.png

اضافة الى الهيكل البياني المسمى (array) هناك كلاس اخر ضمن مكتبة (numpy) اسمه (matrix) وله مواصفات مختلفة الى حد ما عن مواصفات (array) وهذه بعض من امثلة استخدامه:

7.png

الفروق الرئيسية بين (array) و (matrix) ضمن مكتبة (NumPy):

ال (array) هي مصفوفات ذات عدة ابعاد (تتراوح بين بعد واحد واي عدد من الابعاد) في حين ال (matrix) هي مصفوفات ذات بعدين عموماً

الفهارس للنوعين تعمل بنفس الطريقة ولها نفس الشروط

المصفوفات من نوع (matrix) يمكن ان تعمل كفهارس لمصفوفات من نفس النوع ولكن الافضل استخدام (array) او (list) لذلك.

كل من النوعين لها فهرسة تبدأ بصفر كبقية فهارس بايثون.

نصائح وخدع عامة لمكتبة NumPy

اعادة التشكيل بشكل اوتوماتيكي

ذكرنا سابقاً ان استخدام الفهرس (-1) يعني استخدم اي عدد بحسب الحاجة وهذا المثال يوضح الفكرة:

اذا كانت لديك مصفوفة من 30 عنصر واردت ان تجعل لها عدد محدد من الصفوف وعدد محدد من الابعاد ولكنك لا تريد تحديد بقية القيم فيمكن اتباع الطريقة التالية:

8

واخيراً لرسم البيانات بأستخدام مكتبة (numPy) نستخدم دالة ال (hostogram) والتي حين تطبيقها على مصفوفة معينة ترجع زوجاً من المتجهات وهي هستوغرام المصفوفة ومتجه الفهارس. لاحظ ان مكتبة (matplotlib) تحتوي على هستوغرام ايضاً (اسمه hist مثل الماتلاب) والذي يختلف عن الهستوغرام الخاص بال(numpy) والفرق الرئيسي ان دالة الهستوغرام الخاصة بمكتبة (numpy) يرجع البيانات فقط في حين هستوغرام ال(matplotlib) يرسم البيانات مباشرة.

وفي المثال ادناه يتبين كيفية استخدام ورسم الهستوغرام:

9.png

الى هنا ينتهي الحديث عن مكتبة (NumPy) في دورتنا المستمرة ان شاء الله وفي الدرس القادم سنبدأ الحديث عن مكتبة اخرى من مكتبات بايثون العلمية والتي سنستخدمها في امثلتنا المستقبلية عن علم البيانات وهي مكتبة (SciPy) والتي يمكن ايجاد كافة التفاصيل عنها في موقعها الرسمي

scipy.org

انتظرونا في الدرس القادم واتمنى ان يكون هذا الدرس مفيداً ومفهوماً للجميع

اخوكم مصطفى صادق لطيف

 

One thought on “بايثون-26: شرح مكتبة NumPy الجزء الخامس

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار وردبرس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   /  تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

w

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.