اذهب إلى المحتوى

Chihab Hedidi

الأعضاء
  • المساهمات

    2623
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    13

آخر يوم ربح فيه Chihab Hedidi هو نوفمبر 7 2024

Chihab Hedidi حاصل على أكثر محتوى إعجابًا!

المعلومات الشخصية

آخر الزوار

1675 زيارة للملف الشخصي

إنجازات Chihab Hedidi

عضو نشيط

عضو نشيط (3/3)

1.2k

السمعة بالموقع

11

إجابات الأسئلة

  1. يمكنك إستخدام الأمر التالي لمعرفة نوع المفسر بالضبط: python -c "import platform; print(platform.python_implementation())"
  2. بالنسبة ل Python هي لغة البرمجة نفسها، أي اللغة التي تكتب بها الكود، أما CPython هو تنفيذ أو مترجم لــ Python مكتوب بلغة C، حيث عندما نقول Python، غالبا ما نشير إلى CPython، لأنه هو الأكثر استخداما وانتشارا، يعني CPython هو البيئة التي يتم من خلالها تنفيذ الكود الذي تكتبه بلغة Python.
  3. اسمها مرتبط بالفعل بالثعبان، ولكن ليس لأن اللغة لها علاقة بالثعابين في الواقع مبتكر اللغة اختار هذا الاسم لأنه كان من معجبي برنامج بريطاني كوميدي قديم اسمه "Monty Python's Flying Circus"، حيث كان يستمتع بمشاهدة هذا البرنامج أثناء تطويره للغة في أواخر الثمانينات، فقرر أن يطلق عليها اسم Python كنوع من التكريم لهذا المسلسل.
  4. إذا أتقنت إحدى المنصتين، سواء Google Cloud أو Azure، فستتمكن من إتقان الأخرى بسرعة، لأن المفاهيم الأساسية متشابهة، الفرق الأساسي يكمن في الأدوات والواجهات، لكن الفهم العميق لإحدى المنصتين سيسهل عليك التكيف مع الأخرى، أما الاختيار بينهما يعتمد على الشركة والمنصة التي تستخدمها، فإذا كنت تستهدف العمل مع شركات تعتمد على نظام مايكروسوفت فقد يكون Azure هو الخيار الأفضل، أما إذا كنت تركز على بيئات تعتمد على الذكاء الاصطناعي والتحليلات الضخمة Google Cloud أكثر ملاءمة. أما بالنسبة لـ Kaggle Notebooks، فهي بيئة مجانية مخصصة لتحليل البيانات وتجربة النماذج بشكل سريع، لكنها ليست بديلا عن منصات السحابة مثل Google Cloud أو Azure التي توفر موارد حوسبة أقوى وقدرة على نشر النماذج على نطاق واسع.
  5. حاول اختيار المنظمات المشاركة في AI/Data Science حيث في كل عام تشارك منظمات مفتوحة المصدر تعمل في الذكاء الاصطناعي، التعلم الآلي، معالجة البيانات مثل: PyTorch, Hugging Face وغيرها، يمكنك الإطلاع على قائمة المنظمات السابقة حتى تأخذ فكرة عليها، أو يمكنك الإطلاع على قائمة المنظمات الخاصة بهذه السنة و إستخدم الفلترة عن طريق تحديد المجالات التي تريد مثل Artificial Intelligence و Data. و ستجد في القائمة على الجهة اليمنى وسائل الإتصال الخاصة بالمنظمة حاول التواصل معهم لتأخذ فكرة على النوعية المشاريع التي سيقومون بها.
  6. نستخدم drop لحذف صفوف أو أعمدة محددة بناء على أسمائها أو مواقعها، مما يمنحك تحكما دقيقا في البيانات التي تريد إزالتها، فمثلا يمكنك حذف عمود معين بتحديد اسمه وتعيين axis=1: import pandas as pd data = {'Name': ['Ali', 'Sara', 'Omar'], 'Age': [25, 30, 22], 'City': ['Cairo', 'Alex', 'Giza']} df = pd.DataFrame(data) df = df.drop('City', axis=1) # حذف عمود "City" print(df) أما dropna يعمل على حذف أي صفوف أو أعمدة تحتوي على قيم مفقودة NaN دون الحاجة إلى تحديدها يدويا، حيث يمكنه حذف الصفوف التي تحتوي على أي قيمة مفقودة أو التي تكون جميع قيمها مفقودة: import pandas as pd import numpy as np data = {'Name': ['Ali', 'Sara', np.nan], 'Age': [25, np.nan, 22], 'City': ['Cairo', 'Alex', 'Giza']} df = pd.DataFrame(data) df = df.dropna() # حذف الصفوف التي تحتوي على أي قيمة مفقودة print(df) الناتج سيكون: Name Age City 0 Ali 25.0 Cairo
  7. الحقيقة أن هذه الأدوات لا تلغي الحاجة إلى الذكاء البشري، بل تعزز دوره، فالذكاء الاصطناعي لا يزال بحاجة إلى من يفهمه، يوجهه، ويستخرج منه أفضل النتائج، كما أن هناك جوانب في تحليل البيانات واتخاذ القرارات المعقدة تحتاج إلى فهم عميق وخبرة لا يمكن للأدوات الآلية استبدالها بسهولة. و من الأفضل لأي شخص أن يستمر في التعلم وتطوير مهاراته، ويركز على المهارات التي تعزز التفكير النقدي وحل المشكلات، لأن المستقبل سيكون لمن يستطيع العمل جنبا إلى جنب مع الذكاء الاصطناعي، وليس لمن يراه كبديل يهدد وجوده.
  8. يجب أن يكون عدد الأعمدة في train_labels و validation_labels متساويا، حيث يمثل كل عمود فئة أو سمة متعلقة بالبيانات التي يتم استخدامها في النموذج، و إذا كان train_labels يحتوي على 5 أعمدة بينما validation_labels يحتوي على 123 عمود، فهذا يشير إلى وجود خلل في معالجة البيانات، و أحد الأسباب المحتملة هو عدم تناسق في تحويل التصنيفات إلى تنسيق One-Hot Encoding، حيث قد تكون بعض الفئات موجودة في بيانات التحقق ولكنها غير ممثلة في بيانات التدريب، كما قد يكون هناك خطأ في تقسيم البيانات أدى إلى فقدان بعض الأعمدة، أو اختلاف في مراحل المعالجة المسبقة مثل إزالة الأعمدة أو استبدال القيم المفقودة بطريقة غير متسقة بين المجموعتين، للتحق من ذلك يمكن طباعة أبعاد المصفوفات ومقارنة أسماء الأعمدة في كل من train_labels و validation_labels. في حال وجود اختلافات، يمكن استخدام align من pandas لتوحيد الأعمدة وإعادة ضبط القيم المفقودة إلى الصفر.
  9. المشكل لديك في ملف gitignore حيث لا يجب أن يكون بصيغة txt بل يكون فقط: .gitignore أي يكون بلا إسم و بهذا الإمتداد حتى يتم التعرف عليه من طرف git.
  10. يمكنك تنفيذ Priority Queue في Python باستخدام queue.PriorityQueue من المكتبة القياسية أو باستخدام قائمة قائمة الأولويات heap مع heapq، حيث يتم ترتيب العناصر تلقائيا حسب الأولوية عند الإدراج ، فمثلا باستخدام heapq، يمكنك إدراج العناصر كأزواج ليتم فرزها بناءً على الأولوية تلقائيا. ما يجعل تنفيذ هياكل البيانات أسهل في Python مقارنة بلغات أخرى هو أن Python توفر مكتبات مدمجة مثل collections و heapq و queue التي تبسط العمل مع القوائم، والـ heaps دون الحاجة إلى إعادة تنفيذها من الصفر، كما أن Python تعتمد على تركيب بسيط ومرن يجعل كتابة الكود وتنفيذ الهياكل أسرع وأوضح مقارنة بلغات أخرى مثل C++ أو Java، حيث تتطلب هذه اللغات تعريفات صريحة للأنواع وكتابة كود أكثر تعقيدًا لإدارة الذاكرة، يمكنك كتابة الكود بهذا الشكل: import heapq pq = [] heapq.heappush(pq, (1, "Task A")) # أولوية 1 heapq.heappush(pq, (3, "Task C")) # أولوية 3 heapq.heappush(pq, (2, "Task B")) # أولوية 2 while pq: print(heapq.heappop(pq)) # يسترجع العناصر حسب الأولوية
  11. لا هذا ليس Static Array بالمعنى التقليدي مثل الموجود في C أو Java، بل هي ديناميكية و الفرق بينهما هو أن Static Array حجمها ثابت ولا يمكن تغييره بعد الإنشاء، كما يتم تخصيص الذاكرة لها مسبقا، بينما Dynamic Array يمكن تعديل حجمها أي إضافة وحذف عناصر بحرية، و يتم إعادة تخصيص الذاكرة عند الحاجة. بالنسبة ل list في بايثون هي مصفوفة ديناميكية، مما يعني أنها تبدأ بحجم معين، وإذا أضفت المزيد من العناصر، يتم إعادة تخصيص ذاكرة أكبر ونقل البيانات إلى موقع جديد، و هذا يشبه ArrayList في Java. أما إذا أردت مصفوفة ثابتة في بايثون يمكنك استخدام المصفوفات من مكتبة array: import array arr = array.array('i', [1, 2, 3, 4, 5]) أو يمكنك استخدام numpy لمصفوفات أكثر كفاءة، ولكن حتى في numpy، إذا أردت حجمًا ثابتا، عليك تجنب resize أو append.
  12. نعم يمكنك تخزين قاعدة البيانات على جهازك باستخدام MySQL أو أي نظام إدارة قواعد بيانات، كل ما تحتاجه هو تثبيت MySQL Server على جهازك، ثم إنشاء قاعدة بيانات وحفظ جميع البيانات عليها، لكن هذا لا يعتبر حل مفيد لمتجرك لأنه في حالة قمت بإيقاف تشغيل جهازك سيفشل الإتصال بقاعدة البيانات و بالتالي سيتعطل الموقع، لذا من الأفضل التفكير في حلول أخرى مثل النسخ الاحتياطي الدوري و من ثم يمكنك إرسال هذه النسخة إلى جهازك.
  13. في جهة المسارات الخاصة بالفديوهات عند الدخول لأحدها ستجد بجانب كل فيديو نقطة زرقاء و هذا دلالة أنك لم تشاهد هذا الفيديو بعد، و عند مشاهدته ستختفي تلك النقطة، لذلك يمكنك الإعتماد على هذه الطريقة.
  14. في بايثون القوائم هي هياكل بيانات ديناميكية وليست مصفوفات ثابتة، و هذا يعني أنه يمكنك تعديل حجم القائمة بإضافة عناصر جديدة أو حذف عناصر دون الحاجة إلى تخصيص حجم معين مسبقا، أما إذا كنت بحاجة إلى مصفوفة ثابتة مثل C أو C++، يمكنك استخدام المكتبة array أو NumPy
  15. بعد إنتهاء الدورة و الحصول على الشهادة سيكون لديك العديد من المشاريع التي يمكنك عرضها في معرض الأعمال الخاص بك و بالتالي بالتأكيد ستساعدك كثيرا في الحصول على عمل، و أيضا سيتكفل فريق محترف من الأكاديمية بمرافقتك في تلك الفترة من أجل توجيهك و مساعدتك في الحصول على عمل بأسرع وقت ممكن، كما يمكنك البحث بمفردك أيضا.
×
×
  • أضف...