بايثون-27: شرح مكتبة (SciPy) الجزء الاول


السلام عليكم

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

بداية قد يرد السؤال عن ما هي فائدة هذه المكتبات؟

والجواب ببساطة ان هذه المكتبات توفر ادوات ودوال تسهل وتسرع عملية التعامل مع البيانات الكثيرة التي ننوي العمل عليها في الامثلة العملية التي سيتم شرحها بعد الانتهاء من شرح الادوات لعلم البيانات بلغة بايثون.

وبصورة عامة فأن التعامل مع علم البيانات والكميات الكبيرة من البيانات يحتاج بشكل عام معرفة في الجبر الخطي (linear algebra) وهو بالضبط ما سنركز عليه في شرح هذه المكتبة.

مقارنة بين (NumPy) و (SciPy)

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

بشكل مختصر فأن مكتبة (SciPy) هي نفس مكتبة (NumPy)

وهي ايضاً من بين المكتبات الاساسية للحسابات العلمية وخوارزميات الرياضيات والدوال المعقدة. ولكنها مبنية كأمتداد لمكتبة (NumPy) مما يعني انهما يستخدمان سوية في اغلب الاحيان.

وسنتعرف على المزيد حول ذلك في هذا الدرس والدروس القادمة ان شاء الله.

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

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

انقر هنا لزيارة NumPy Cheat sheet

ولذلك سنقفز مباشرة الى الجبر الخطي والتعامل مع دواله في مكتبة (SciPy) فتابعوا معنا:

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

1

السطر الاول لأستيراد مكتبة NumPy

السطر الثاني لأستيراد مكتبة SciPy

السطر الثالث لعرض الاصدار الخاص بمكتبة SciPy

والان نبدأ التعامل مع ادوات هذه المكتبة:

اساسيات المتجهات والمصفوفات:

فضاء المتجه (Vector Space): وهو مفهوم اساسي في الجبر الخطي وهو عبارة عن مجموعة من المتجهات بحيث يمكنك جمع متجهين بدون ان يخرج الناتج من فضاء المتجه. علماً ان المتجه قد يكون صف او عمود في المصفوفة.

انشاء المتجهات والمصفوفات بأستخدام مكتبة (NumPy): ويمكن عمل ذلك كما تعلمنا في الدروس السابقة او بأستخدام الطريقة التالية:

2

عند التعامل مع مصفوفات تتكون اغلب عناصرها من اصفار فتلك المصفوفات نسميها مصفوفات متفرقة (Sparse matrices) واما المصفوفات التي تحتوي على عدد قليل من الاصفار فنسميها المصفوفات الكثيفة (Dense Matrices)

للوهلة الاولى قد يبدو هذا الشيء غير مفيد وهي مجرد اختلاف في الاسماء ولكن هنا تبرز اهمية المكتبات العلمية التي تراعي هذه الامور بدقة وتستخدمها لتسريع التنفيذ وهنا تظهر لنا عدة خيارات:

scipy.linalg ونستخدمها مع المصفوفات الكثيفة

scipy.sparse ونستخدمها مع المصفوفات المتفرقة

وهناك عدة عمليات بمكن انجازها على كل نوع من المصفوفات:

3

العمليات على المتجهات:

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

4

الى هنا ينتهي درس اليوم على امل اكمال ما يتعلق بمكتبة (SciPy) في الدرس القادم ان شاء الله فتابعوا معنا

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

اترك رد

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

WordPress.com Logo

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

Google+ photo

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

صورة تويتر

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

Facebook photo

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

w

Connecting to %s