أرشيف الأوسمة: بايثون

لماذا يجب ان تتعلم لغة بايثون اليوم وبلا تأخير؟


السلام عليكم ورحمة الله وبركاته

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

ما هي لغة البرمجة الافضل في كل المجالات لأتعلمها؟

وفي الحقيقة ليس هناك جواب واحد لهذا السؤال فكل لغة برمجة ممكن ان تكون الافضل في مجال ما ولكنها ليست كذلك في المجالات الاخرى فليس هناك لغة سحرية خارقة هي الافضل في كل المجالات.

طيب ما هي اللغة التي يجب ان اتعلمها ان لم اعرف اين اتجه او ما الذي اريد التخصص فيه؟

الجواب ببساطة (بايثون) وكما وضحنا السبب في هذا الفيديو (انقر هنا لزيارة الفيديو))

Image result for why python

طيب وهل هناك لغة تعتبر ضمن افضل 5 لغات في كل المجالات؟

الجواب: نعم

وما هي هذه اللغة؟

الجواب: بايثون!

نعم فبايثون تعتبر من افضل خمس لغات في المجالات التالية

For beginners

for electronics

for telecommunications

for blockchain development

for microcontrollers

for Internet of Things (IoT)

for Desktop Applications

for Network Programming

For Cloud Computing

for Artificial Intellegence (AI)

for data science

for web design

for hacking and security

for game developement

for mobile phones apps developement

for machine learning

for robotics

for teaching kids programming basics

for cyber security developement

and for finance and marketing

Image result for why python

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

Image result for why python
بعض مكتبات بايثون المهمة لتسهيل التعامل مع مختلف الاختصاصات

السؤال الذي قد يرد الان: ولكنني لا اريد التخصص في كل هذه الامور وانما في مجال واحد او اثنين فلم لا ابحث عن اللغة الافضل في تلك المجالات فقط؟

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

Image result for why python

اذا ما هي النصيحة الاخيرة؟

الجواب: انطلق الان لتعلم لغة بايثون بلا تأخير 🙂

السؤال الاخير:

ومن اين ابدأ؟

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

واين اتجه بعد ذلك؟

ستجد طريقك لوحدك بعدها فلا تخف 🙂

بايثون-25: مكتبة NumPy الجزء الرابع


السلام عليكم

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

  • التلاعب بشكل المصفوفة (تغيير الشكل، دمج مصفوفتين، تجزئة مصفوفة واحدة الى عدة مصفوفات، النسخ وانواع العرض للمصفوفات).

  • مجموعة من الدوال العامة للتلاعب بالمصفوفات

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

تغيير شكل المصفوفة:

تستخدم دالة (shape) لعرض ابعاد المصفوفة (عدد الصفوف والاعمدة والابعاد الاخرى ان وجدت) وتستخدم كما في المثال ادناه:

1

والان لتحويل المصفوفة الى بعد واحد نستطيع استخدام دالة (ravel) وكما في المثال التالي:

2

الصورة اعلاه تبين عدة امثلة للدوال التالية:

transpose لعرض المصفوفة مع قلب الصفوف اعمدة والاعمدة صفوف

reshape لعرض شكل جديد للمصفوفة (بدون تغيير الشكل الاصلي)

resize لتغيير شكل المصفوفة الاصلية بشكل نهائي

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

3

دمج عدة مصفوفات سوية:

نستطيع استخدام الادوات التالية:

vstack((a,b))   وضع المصفوفة الثانية اسفل المصفوفة الاولى

hstack((a,b))  وضع المصفوفة الثانية الى يمين المصفوفة الاولى

column_stack((a,b)) يستخدم فقط للمصفوفات احادية البعد ويضع المصفوفة الثانية اسفل المصفوفة الاولى

row_stack((a,b)) يستخدم فقط للمصفوفات احادية البعد ويضع المصفوفة الثانية يمين المصفوفة الاولى

الامثلة التالية توضح ذلك:

4

بالنسبة للمصفوفات ذات الابعاد اكثر من بعدين:

hstack تقوم برزم المصفوفات بعد البعد الثاني

vstack ترزم المصفوفات بعد البعد الاول

تجزئة المصفوفة الواحدة الى اجزاء اصغر:

ويتم بأستخدام دالة hsplit وكما في الامثلة التالية:

5

نسخ المصفوفات ونسخ واجهات المصفوفات

حين نتلاعب بالمصفوفات فبعض الاحيان نقوم بنسخ المصفوفة الى مصفوفة اخرى وفي احيان اخرى يتم نسخ واجهة المصفوفة (نسخ سطحي) فقط وليست المصفوفة كعنصر كامل وفي الامثلة التالية تتضح الامور اكثر:

في حالة قول (a=b) فهذا لا يعني نسخ المصفوفة كعنصر او كبيانات وانما كواجهة فقط وكما في ادناه:

6

اذا اردنا ان ننسخ بيانات مصفوفة في مصفوفة اخرى بدون انشاء عنصر جديد نستخدم دالة view وكما في ادناه:

7

واخيراً لنسخ مصفوفة بشكل كامل الى مصفوفة اخرى نستخدم دالة (copy) وكما في الامثلة التالية:

8

طبعاً هذه فقط مجموعة بسيطة من الدوال الكثيرة التي توفرها مكتبة NumPy للتعامل مع المصفوفات للأغراض العلمية وللأطلاع على بقية الدوال يمكن زيارة الروابط التالية:

لأنشاء المصفوفات

arangearraycopyemptyempty_likeeyefromfilefromfunctionidentitylinspacelogspacemgridogridonesones_likerzeroszeros_like

للتحويل بين المصفوفات

astypeatleast 1datleast 2datleast 3dmat

للتلاعب بالمصفوفات

array splitcolumn stackconcatenatediagonaldsplitdstackhsplithstackitemnewaxisravelrepeatreshaperesizesqueezeswapaxestaketransposevsplitvstack

للسؤال عن حالة المصفوفات

allanynonzerowhere

لترتيب المصفوفة

argmaxargminargsortmaxminptpsearchsortedsort

العمليات على المصفوفات

choosecompresscumprodcumsuminnerfillimagprodputputmaskrealsum

احصائيات اولية لبيانات المصفوفات

covmeanstdvar

دوال الجبر الخطي للمصفوفات

crossdotoutersvdvdot

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

كالعادة لا تترددوا في ترك اسئلتكم واستفساراتكم في التعليقات وسنجيب عنها في اقرب فرصة

اذا اعجبكم المحتوى فنتمنى مشاركتنا نشره في كل مكان لتعميم الفائدة

تحياتي للجميع

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

 

بايثون-24: مكتبة NumPy الجزء الثالث


السلام عليكم

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

  • الدوال الرياضية العامة التي توفرها مكتبة NumPy

  • تجزئة وتشريح المصفوفات والدوارات داخل المصفوفات

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

الدوال الرياضية العامة

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

1

توضيح للصورة اعلاه:

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

exp() هي دالة الاس المعروفة

sqrt() هي دالة الحذر التربيعي

add(a,b) جمع مصفوفتين

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

دليل الدوال الرياضية التي توفرها مكتبة NumPy

تجزئة المصفوفات وتشريحها

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

2

لعكس المصفوفة نستخدم الدالة التالية:

a[: : -1]

وللتنقل بين عناصر المصفوفة يمكن استخدام (for) ايضاً وكما في المثال التالي:

3

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

a[3,4]  هو العنصر في الصف الرابع العمود الخامس من المصفوفة (a) وهكذا

مزيد من الامثلة في ادناه:

4

اذا تم تزويد عدد من الابعاد اقل من ابعاد المصفوفة فبقية الابعاد سيتم اعتبارها كاملة (كل الصفوف او كل الاعمدة) وكما في المثال ادناه:

t[5]  معناها الصف السادس وكل الاعمدة

t[:,3] معناها كل الصفوف والعمود الرابع

وهكذا

كذلك للتعبير عن مصفوفة ذات ابعاد اكثر من 2 فيمكن استخدام التعبير التالي

a[2,2,:,:,:] === a[2,2,…]

b[…,2] ==== b[:,:,:,:,:,2]

اي انه يمكن استخدام النقاط الثلاث (…) بدل اي عدد من الابعاد التي نريد التعبير عنها بدون ذكر رقم محدد.

الامثلة التالية توضح المقصود:

5

وللتنقل وبين محتويات المصفوفة متعددة الابعاد يمكن استخدام (for) والمحور الاول وكما في المثال التالي:

6

حيث نلاحظ ان المثال الاول مكننا من طباعة صفوف المصفوفة بأستخدام (for) في حين اذا اردنا طباعة كل عناصر المصفوفة متعددة الابعاد فيمكن الاستعانة بدالة (flat) وكما في المثال الثاني.

واخيراً لمعرفة المزيد عن الادوات التي توفرها مكتبة NumPy للتلاعب بالمصفوفات يمكن الاستعانة بالرابط اعلاه والذي يحتوي كل الدوال للتعامل مع المصفوفات (التي شرحناها والتي لم نشرحها).

الى هنا ينتهي درس اليوم على امل اللقاء بكم في درس قادم ان شاء الله وكالعادة نتمنى  منكم مشاركة المحتوى ان اعجبكم ولا تترددوا بأرسال اسئلتكم واستفساراتكم الى الموقع وسيسرنا الاجابة عنها بأسرع وقت ممكن.

تحياتي للجميع

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

بايثون-21: التعرف على واجهة Jupyter وكيفية استخدامها للبرمجة


السلام عليكم

في هذا الدرس سنتعرف على واجهة الويب الخاصة بحزمة (Jupyter) وهو المشروع المفتوح المصدر الذي يستهدف بناء التطبيقات مفتوحة المصدر التفاعلية للعديد من لغات البرمجة والمكتوب بلغة بايثون ويمكن معرفة المزيد عنه من الرابط التالي (http://jupyter.org/index.html). بعد ان قمنا بتنصيب هذه الحزمة في الدرس السابق و تعرفنا على كيفية فتحها في انظمة التشغيل المختلفة (ويندوز، ماك، ولينكس اوبونتو).

الواجهة الاولى التي ستظهر لنا حين فتح التطبيق هي المبينة في الصورة ادناه:

1

وهنا تظهر لنا الادوات التي نستطيع من خلالها التحكم بالبرنامج المكتوب وتنفيذه والتلاعب به وكما يلي:في اعلى النافذة والى اليمين من ايقونة البرنامج (Jupyter) نرى اسم الملف الذي نعمل عليه الان وهو في هذه الحالة (Untitled2) والذي يمكن تغييره بالنقر عليه لتظهر النافذة المبينة ادناه:

2.png

حيث قمنا بتسمية الملف (first.py).

والان ننتقل الى قائمة الادوات ونبدأ بها من اليسار الى اليمين:

  • رمز ال(floppy disk): وهو رمز الحفظ المعروف.

  • رمز (+): ويستخدم لأضافة خلية جديدة اسفل الخلية الحالية وعند النقر عليه نلاحظ ظهور التالي:

    3

  • رمز المقص: ويستخدم لقص (او حذف) خلية معينة بعد النقر عليها.

  • رمز الورقتين: لنسخ الخلية التي نعمل عليها الان.

  • رمز اللصق المعروف: للصق خلية معينة في مكان ما اسفل الخلية التي نعمل عليها.

  • رمز السهم الى الاعلى: لتحريك الخلية المحددة الى الاعلى.

  • رمز السهم الى الاسفل: تحريك الخلية المحددة الى الاسفل.

  • رمز السهم الجانبي: لتنفيذ الكود المكتوب في الخلية المحددة حالياً (الخلية التي يظهر خط ملون الى جانبها الايسر).

  • رمز المربع الاسود: لأيقاف التنفيذ.

  • رمز السهم المعقوف: لأعادة تشغيل الواجهة في بيئة الويب.

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

ملاحظة: في هذه المرحلة وكما نوهنا سابقاً المفروض لمن يرغبون بمتابعة هذه الدروس ان يكونوا قد قاموا بمراجعة الدروس السابقة والتعرف على اساسيات لغة بايثون ليكونوا مستعدين للعمل على البرامج المتقدمة بلغة بايثون التي سنشرحها في الدروس القادمة ان شاء الله.

كذلك اضافة الى المراجعة للدروس السابقة، هذه مجموعة من الامور التي يجب اتقانها قبل اكمال بقية اجزاء الكورس:

1- التعابير القياسية (والتي تم شرحها في الدروس 18 و 19) وتلخصها الصورة التالية:

4.png

وهذه بعض التمارين لأختبار مستواك في فهم التعابير القياسية قبل الاستمرار في بقية مكونات الكورس:

https://developers.google.com/edu/python/exercises/baby-names

و

https://www.analyticsvidhya.com/blog/2014/11/text-data-cleaning-steps-python/

2- تنصيب حزمة اناكوندا وجوبيتر وكيفية التعامل مع واجهاتها (الدرسين 20 و 21).

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

5

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

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