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

Chihab Hedidi

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

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

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

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

    13

كل منشورات العضو Chihab Hedidi

  1. نستخدم 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
  2. الحقيقة أن هذه الأدوات لا تلغي الحاجة إلى الذكاء البشري، بل تعزز دوره، فالذكاء الاصطناعي لا يزال بحاجة إلى من يفهمه، يوجهه، ويستخرج منه أفضل النتائج، كما أن هناك جوانب في تحليل البيانات واتخاذ القرارات المعقدة تحتاج إلى فهم عميق وخبرة لا يمكن للأدوات الآلية استبدالها بسهولة. و من الأفضل لأي شخص أن يستمر في التعلم وتطوير مهاراته، ويركز على المهارات التي تعزز التفكير النقدي وحل المشكلات، لأن المستقبل سيكون لمن يستطيع العمل جنبا إلى جنب مع الذكاء الاصطناعي، وليس لمن يراه كبديل يهدد وجوده.
  3. يجب أن يكون عدد الأعمدة في train_labels و validation_labels متساويا، حيث يمثل كل عمود فئة أو سمة متعلقة بالبيانات التي يتم استخدامها في النموذج، و إذا كان train_labels يحتوي على 5 أعمدة بينما validation_labels يحتوي على 123 عمود، فهذا يشير إلى وجود خلل في معالجة البيانات، و أحد الأسباب المحتملة هو عدم تناسق في تحويل التصنيفات إلى تنسيق One-Hot Encoding، حيث قد تكون بعض الفئات موجودة في بيانات التحقق ولكنها غير ممثلة في بيانات التدريب، كما قد يكون هناك خطأ في تقسيم البيانات أدى إلى فقدان بعض الأعمدة، أو اختلاف في مراحل المعالجة المسبقة مثل إزالة الأعمدة أو استبدال القيم المفقودة بطريقة غير متسقة بين المجموعتين، للتحق من ذلك يمكن طباعة أبعاد المصفوفات ومقارنة أسماء الأعمدة في كل من train_labels و validation_labels. في حال وجود اختلافات، يمكن استخدام align من pandas لتوحيد الأعمدة وإعادة ضبط القيم المفقودة إلى الصفر.
  4. المشكل لديك في ملف gitignore حيث لا يجب أن يكون بصيغة txt بل يكون فقط: .gitignore أي يكون بلا إسم و بهذا الإمتداد حتى يتم التعرف عليه من طرف git.
  5. يمكنك تنفيذ 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)) # يسترجع العناصر حسب الأولوية
  6. لا هذا ليس 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.
  7. نعم يمكنك تخزين قاعدة البيانات على جهازك باستخدام MySQL أو أي نظام إدارة قواعد بيانات، كل ما تحتاجه هو تثبيت MySQL Server على جهازك، ثم إنشاء قاعدة بيانات وحفظ جميع البيانات عليها، لكن هذا لا يعتبر حل مفيد لمتجرك لأنه في حالة قمت بإيقاف تشغيل جهازك سيفشل الإتصال بقاعدة البيانات و بالتالي سيتعطل الموقع، لذا من الأفضل التفكير في حلول أخرى مثل النسخ الاحتياطي الدوري و من ثم يمكنك إرسال هذه النسخة إلى جهازك.
  8. في جهة المسارات الخاصة بالفديوهات عند الدخول لأحدها ستجد بجانب كل فيديو نقطة زرقاء و هذا دلالة أنك لم تشاهد هذا الفيديو بعد، و عند مشاهدته ستختفي تلك النقطة، لذلك يمكنك الإعتماد على هذه الطريقة.
  9. في بايثون القوائم هي هياكل بيانات ديناميكية وليست مصفوفات ثابتة، و هذا يعني أنه يمكنك تعديل حجم القائمة بإضافة عناصر جديدة أو حذف عناصر دون الحاجة إلى تخصيص حجم معين مسبقا، أما إذا كنت بحاجة إلى مصفوفة ثابتة مثل C أو C++، يمكنك استخدام المكتبة array أو NumPy
  10. بعد إنتهاء الدورة و الحصول على الشهادة سيكون لديك العديد من المشاريع التي يمكنك عرضها في معرض الأعمال الخاص بك و بالتالي بالتأكيد ستساعدك كثيرا في الحصول على عمل، و أيضا سيتكفل فريق محترف من الأكاديمية بمرافقتك في تلك الفترة من أجل توجيهك و مساعدتك في الحصول على عمل بأسرع وقت ممكن، كما يمكنك البحث بمفردك أيضا.
  11. بالنسبة للإمتحان، يجب عليك إتمام أربعة مسارات تعليمية على الأقل و سيكون خاص بتلك المسارات فقط، و سينقسم إلى قسمين حيث القسم الأول عبارة عن محادثة صوتية مدتها 30 دقيقة يتم في طرح أسئلة بخصوص الدورة. بعدها يطلب منك إنجاز مشروع معين في مدة 15 يوم و هو عبارة عن مشروع التخرج يحدده المدرب و يكون مرتبط بما تعلمته. يمكنك أن تطلع على هذا الجواب لمزيد من المعلومات:
  12. صحيح مكتبة ScientificPython قديمة جدا ولم تعد تستخدم على نطاق واسع حاليا، آخر تحديث لها كان منذ سنوات عديدة، وهي لم تعد متوافقة مع الإصدارات الحديثة من Python، و بدلا منها يتم استخدام مكتبات حديثة وقوية مثل SciPy، Numpy, Pandas و غيرها.
  13. برامج قواعد البيانات عادة لا تستهلك العديد من المساحة و الموارد، و أيضا هناك إختلاف بينهما لذا من الأفضل تثبيتهما معا لأنه سيتم التطبيق عليهما الإثنتين. و إذا كنت تشعر أن هناك برنامج يستهلك الموارد في جهازك يمكنك دائما الإطلاع على ذلك من خلال ال task manager حيث يمكنك إيقاف البرامج من هناك.
  14. في هذه الحالة من الأفضل أن تراسل مركز المساعدة، و أرجوا توضيح رسالتك حتى يتم مساعدتك بأسرع وقت ممكن، لأنه يوجد ضغط على الرسائل و ربما يتأخر الأمر قليلا.
  15. استخدم هذا الأمر لرؤية السجلات أثناء تشغيل التطبيق: flutter logs في حالة ظهر أي خطأ أرجوا إرسال صورة له، و إلا جرب حذف التطبيق وإعادة تثبيته: flutter clean flutter pub get flutter build apk --release
  16. في كل مسار من الدورة سيكون هناك تمارين تطبيقية مع الأستاذ، يمكنك حلها و وضع إجابتك في التعليقات حيث سيقوم مجموعة من المدربين بتوجيهك، و في نهاية كل مسار سيكون هناك مشروع كبير يجب القيام به و تقوم بتطبيق ما تعلمته في الدورة. و في نهاية الدورة سيكون هناك إختبار حيث سيطلب منك إنجاز مشروع معين في مدة 15 يوم و هذا للحصول على الشهادة.
  17. بالنسبة للدورة فهي تتضمن البرمجة لأن هناك دروسا لإنشاء ألعاب ثنائية وثلاثية الأبعاد، مما يتطلب كتابة الكود، أما بالنسبة للنشر فلم يتم إضافته بعد في الدورة و لكن الدورة دائما تحتوي على تحديثات و بالتالي مع مرور الوقت سيتم إضافة هذا المسار، و إذا كنت مهتما بالنشر على PlayStation 4 أو 5، فهذا يتطلب الاشتراك في PlayStation Partners والحصول على عدة تطوير رسمية SDK، أما نشر الألعاب على الهواتف، فيعتمد على محركات الألعاب المستخدمة ودعمها للتصدير إلى Android وiOS، و يمكنك نشر مشاريعك على Google Play وApp Store بعد إعداد الحسابات اللازمة.
  18. يعتمد اختيارك بين تعلم كلاهما على أهدافك ومجال اهتمامك، فإذا كنت مهتما بتطوير تطبيقات تعتمد على معالجة اللغة الطبيعية فإن تعلم LLM سيكون الخيار الأنسب، أما إذا كنت ترغب في العمل على مشاريع تتعلق بتحليل الصور والفيديو، مثل التعرف على الوجوه والتصنيف الآلي للصور فإن رؤية الحاسوب ستكون الخيار الأفضل، و كلا المجالين مطلوبان بشدة، يمكنك أن تطلع على هذا المقال حيث سيعطيك فكرة أفضل عن المجال: https://io.hsoub.com/tech/118455-الرؤية-الحاسوبية-computer-vision
  19. لا يوجد إعدادات خاصة في Kaggle Notebook تحتاج إلى ضبطها قبل استخدام pickle لحفظ النموذج، فقط عند حفظ النموذج، تأكد من تحديد المسار الصحيح داخل بيئة Kaggle: import pickle model_filename = "/kaggle/working/model.pkl" # حفظ النموذج with open(model_filename, "wb") as file: pickle.dump(model, file)
  20. من الطبيعي تماما أن تشعر بالنسيان، فيجب أن تعتمد على التكرار والتطبيق العملي لتعزيز الفهم، و عندما تحضر أو تراجع ما درسته سابقا تجد أنك تتذكر الكثير مما تعلمته، وهذا أمر شائع بين المتعلمين، وأيضا لا يجب أن تحفظ كل شيء عن ظهر قلب، بل الأهم هو أن تفهم المفاهيم الأساسية وتعرف كيف تبحث عن التفاصيل عند الحاجة، و مع الممارسة المستمرة وتطبيق ما تعلمته في مشاريع حقيقية، ستجد أن استرجاع المعلومات يصبح أسهل وأكثر تلقائية، يمكنك أن تطلع على أجوبة هذا السؤال حيث ستفيدك أكثر:
  21. عند الإشتراك في الدورة سيظهر لديك زر دوراتي باللون الأخضر في الأعلى، يمكنك الضغط عليه و ستجد الدورات الخاصة بك. ستجد في كل دورة عدة مسارات كل مسار خاص بمجال معين في الدورة كما يمكنك الإطلاع على محتوى الدورة بأكمله من صفحة الدورة، مثلا يمكنك الإطلاع على دورة الذكاء الإصطناعي من هنا: https://academy.hsoub.com/learn/artificial-intelligence/ أسفل كل فيديو في الدورة ستجد تعليقات الطلبة، كما تجد مكان يمكنك من خلاله طرح أسئلتك، و سيتكفل فريق من المدربين بمساعدتك في أي مشكلة خاصة بالدرس.
  22. يبدأ الفهرس في المصفوفات من 0 بدلا من 1 لعدة أسباب تتعلق بالكفاءة وإدارة الذاكرة، فعند تخصيص مصفوفة في الذاكرة، يتم تخزين عناصرها في مواقع متتالية، ويتم حساب عنوان كل عنصر باستخدام معادلة تعتمد على الفهرس، إذا بدأ الفهرس من 0، فإن أول عنصر يكون في العنوان الأساسي للمصفوفة دون أي إزاحة، مما يجعل العمليات الحسابية أكثر كفاءة، أما لو بدأ من 1 فسيحتاج كل عنصر إلى عملية طرح إضافية index - 1، مما يزيد من تعقيد الحسابات، وأيضا هذا النهج يتوافق مع طريقة عمل المؤشرات في لغات مثل C وC++، حيث يكون اسم المصفوفة مرادفا لعنوان أول عنصر، مما يسهل التعامل مع البيانات دون الحاجة إلى تعويضات إضافية، و اعتمدت لغات البرمجة المبكرة مثل C هذا الأسلوب نظرا لكفاءته العالية، وأصبح فيما بعد المعيار الافتراضي في معظم اللغات الحديثة.
  23. من الأفضل أن تتواصل مع مركز المساعدة بخصوص هذا الأمر حيث أنهم سيقدرون قدرتك على تغيير الدورة من عدمها على حسب حالتك، و حاول أن تجعل رسالتك واضحة حتى يتم الرد عليك في أقرب وقت ممكن.
  24. لو تطلع على تفاصيل كل دورة من خلال صفحتيهما ستجد أنه مكتوب أن الدورة من الصفر دون الحاجة لخبرة مسبقة، و بالتالي لا تحتاج إلى خبرة في تلك اللغات حيث سيتم تدريسك كل شيء، كما أنه يوجد فريق من المدربين سيقومون بالمتابعة معك أثناء الدورة لمساعدتك في فهم كل ماهو صعب بالنسبة لك: https://academy.hsoub.com/learn/python-application-development/ https://academy.hsoub.com/learn/python-application-development/
  25. لطباعة الجداول في Java باستخدام Swing، يمكنك استخدام print المتوفر في هذه المكونات، و يمكنك عرض نافذة الطباعة لاختيار الطابعة وإعداداتها قبل الطباعة، يكون الكود بهذا الشكل: try { boolean complete = myTextArea.print(); if (complete) { System.out.println("تمت الطباعة بنجاح!"); } else { System.out.println("تم إلغاء الطباعة."); } } catch (Exception e) { e.printStackTrace(); } try { boolean complete = myTable.print(); // استدعاء دالة الطباعة مباشرة if (complete) { System.out.println("تمت الطباعة بنجاح!"); } else { System.out.println("تم إلغاء الطباعة."); } } catch (Exception e) { e.printStackTrace(); }
×
×
  • أضف...