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

Mustafa Suleiman

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

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

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

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

    365

كل منشورات العضو Mustafa Suleiman

  1. بسبب أن العمود لديك بها قيم 0 و 1وذلك يجعله غير رقمي بالنسبة لميثود describe. لعرض ذلك ستحتاج ميثود مثل value_counts فهي تعمل على البيانات الفئوية Categorical أو الثنائية Binary، وتُظهر عدد مرات ظهور كل قيمة في العمود. import pandas as pd import matplotlib.pyplot as plt statistical = pd.read_csv("diabetes_clean.csv") numeric_stats = statistical.describe() outcome_freq = statistical['Outcome'].value_counts() fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6)) numeric_stats.loc[["mean", "std", "min", "25%", "50%", "75%", "max"]].transpose().plot(kind='bar', ax=ax1) ax1.set_title("Statistical Summary of Numeric Features") ax1.set_xlabel("Features") ax1.set_ylabel("Value") outcome_freq.plot(kind='bar', ax=ax2) ax2.set_title("Frequency Distribution of Outcome") ax2.set_xlabel("Outcome") ax2.set_ylabel("Frequency") plt.tight_layout() plt.show()
  2. على العكس، من المهم أن يكون عمود Outcome موجودًا في الرسم البياني لعرض الإحصاءات بشكل مرئي، مثلاً لو تريد عرض إحصاءات عن تأثير نوع العلاج على شفاء المرضى. فبدون عمود Outcome فسيكون من الصعب فهم العلاقة بين نوع العلاج ونتائج الشفاء، لكن عند تضمينه سيوضح الرسم البياني بوضوح تأثير كل نوع علاج على نسبة الشفاء.
  3. قم ببناء المشروع لكن أضف معلمة --scan مع الأمر للحصول على معلومات إضافية حول المشكلة ثم أرفق الناتج: flutter run --scan أيضًا تشغيل الأمر: flutter doctor ثم أرفق الناتج.
  4. ما تقوم به transpose() هو تغيير اتجاه البيانات في الـ DataFrame، أي قبل استخدامها تكون البيانات مرتبة في صفوف وأعمدة، حيث تمثل كل صف سجلًا row وكل عمود ميزة column. بعد transpose() تُصبح الأعمدة صفوفًا والعكس صحيح، أي تمثل كل صف ميزة، وكل عمود قيمة إحصائية (مثل المتوسط، الانحراف المعياري، الحد الأدنى، إلخ).
  5. ما تحتاجه هو القيام بالتالي: import pandas as pd import matplotlib.pyplot as plt statistical = pd.read_csv("diabetes_clean.csv") statistical = statistical.describe() plt.figure(figsize=(12,11)) statistical.loc[["mean", "std", "min", "25%", "50%", "75%", "max"]].transpose().plot(kind='bar', figsize=(14,8)) plt.title("Statistical Summary of Diabetes Dataset") plt.xlabel("Features") plt.ylabel("Value") plt.legend(["Mean", "Std", "Min", "25%", "50%", "75%", "Max"]) plt.tight_layout() plt.show() هنا plt.figure(figsize=(12,11)) نقوم بإنشاء رسم بياني بحجم 12x11 بوصة. وفي الأسطر التي تليه نحدد شكل الرسم البياني. بالنسبة لـ plt.tight_layout() فهي لضبط تخطيط الرسم البياني لضمان عرض جميع البيانات بشكل صحيح.
  6. لا حاجة إلى ذلك، فأثناء تعلمك للمكتبة ستتعلم الـ data visualization، ومن الأسهل لك استخدام مكتبة seaborn والتي تستخدم matplotlib كأساس لها، وتوفر لك إمكانية إنشاء رسوم متقدمة وجميلة بشكل سلس. أو لديك مكتبة Plotly أيضًا وهي مكتبة متقدمة و تنتج رسوم بيانية تفاعلية، يمكن للمستخدمين التفاعل معها وتغييرها. وللعلم يوجد في موقع matplotlib معرض للرسوم البيانية المختلفة وكود بسيط لتوليدهم. وهنا أيضًا: https://www.machinelearningplus.com/plots/top-50-matplotlib-visualizations-the-master-plots-python/#6.-Marginal-Histogram
  7. قم بإظهار كلمة السر أثناء كتابتها لتفقد هل هناك حروف غير صحيحة؟ إن استمرت المشكلة قم بتغييرها ثم أظهرها أثناء الكتابة بالضغط على علامة "العين أو خيار أظهر كلمة المرور" ثم تفقدها فربما تكتب حروف بشكل captial أي حروف كبيرة مثل A بدلاً من a لذا عليك كتابتها كما هي حتى لو وضعت مسافة أيضًا.
  8. لم يتم قبول الإتصال، أرجو إخباري عندما تكون متوافر
  9. طالما أنّ المواقع الأخرى تعمل، فالمشكلة من الإنترنت لديك، هل تستخدم VPN؟ حاول إغلاقه والتجربة. إن استمرت المشكلة قم بتجربة برنامج WARP فهو يعمل مثل VPN وتعمل جميع المواقع به: https://one.one.one.one/ بعد التثبيت اضغط على CONNECT. إن استمرت المشكلة أرجو تحميل برنامج Anydesk للدخول على حاسوبك وتفقد المشكلة، مع إرسال الـ Address على الخاص أو هنا في التعليقات. وعند فتح البرنامج ستجد عنوان Address باللون الأحمر انقر عليه بالفأرة بالزر الأيسر لنسخه وتستطيع لصقه في أي مكان وذلك هو العنوان الذي يتم الإتصال به بحاسوبك.
  10. هل المواقع الأخرى مثل يوتيوب تعمل معك بشكل سليم؟ إن كانت تعمل، أرجو إغلاق المتصفح والتجربة مرة أخرى إن استمرت المشكلة لنقم بتجربة متصفح آخر، وأخبرني بالنتيجة إن حدثت مشكلة. أيضًا لنقم بتحدث الصفحة من خلال CTRL + F5
  11. كل التقنيات مطلوبة، لكن الأمر يتحدد حسب سوق العمل الذي تستهدفه وأيضًا نوعية الشركات أو العملاء. وبناءًا على ما ذكرت، فستجد أنّ إطار .NET هو الأكثر استخدامًا بخصوص المؤسسات الحكومية والشركات الكبيرة. بجانب ذلك ستجد لغة Java والإطارات الخاصة بها خاصًة في المؤسسات البنكية. أي لغة جافا وC# هما ما تحتاج تعلمهم، لكن قرر أيهم المناسب لك حسب سوق العمل لديك من خلال البحث في الوظائف المعروضة.
  12. من الـ back-end ففي الواجهة الأمامية، نرسل بيانات للواجهة الخلفية أو نستقبلها منها.
  13. حاول استخدام Livewire.hook لكي تتمكن جافاسكريبت من الوصول للـ DOM بعد الإنتهاء من تحميله، بحيث يصبح السكريبت كالتالي: <script> Livewire.hook('message.processed', (message, component) => { if (component.fingerprint.name === 'TeamComponent') { const wrapper_searchable = document.querySelector(".wrapper_searchable"); if (!wrapper_searchable) { console.error("Element .wrapper_searchable not found"); return; } const selectBtn = wrapper_searchable.querySelector(".form-control"), searchInp = wrapper_searchable.querySelector("input"), options_searchable = wrapper_searchable.querySelector(".options_searchable"); if (!selectBtn || !searchInp || !options_searchable) { console.error("One or more elements are not found"); return; } let countries = ["Yemen", "Bangladesh", "Belgium", "Bhutan", "Brazil", "Canada", /*...*/ ]; function addCountry(selectedCountry) { options_searchable.innerHTML = ""; countries.forEach(country => { let isSelected = country == selectedCountry ? "selected" : ""; let li = `<li onclick="updateName(this)" class="${isSelected}">${country}</li>`; options_searchable.insertAdjacentHTML("beforeend", li); }); } addCountry(); function updateName(selectedLi) { searchInp.value = ""; addCountry(selectedLi.innerText); wrapper_searchable.classList.remove("active"); selectBtn.firstElementChild.innerText = selectedLi.innerText; } searchInp.addEventListener("keyup", () => { let arr = []; let searchWord = searchInp.value.toLowerCase(); arr = countries.filter(data => data.toLowerCase().startsWith(searchWord)) .map(data => { let isSelected = data == selectBtn.firstElementChild.innerText ? "selected" : ""; return `<li onclick="updateName(this)" class="${isSelected}">${data}</li>`; }).join(""); options_searchable.innerHTML = arr ? arr : `<p style="margin-top: 10px;">Oops! Country not found</p>`; }); selectBtn.addEventListener("click", () => wrapper_searchable.classList.toggle("active")); } }); </script>
  14. جميع الدورات بالأكاديمية ذات سعر موحد وهو 290 دولار، وذلك ليس تكلفة الدورة بمفردها بل هناك باقة شاملة تستطيع التعرف عليها عند الضغط على رابط "شاهد صفحة الدورة" من هنا: دورات تعليمية وهي: وصول مدى الحياة لمحتويات الدورة تحديثات مستمرة على الدورة تحصل عليها مجاناً بالمستقبل نصائح مخصّصة لك وإرشاد بعد الدورة ضمان استرداد استثمارك خلال 6 أشهر شهادة معتمدة من أكاديمية حسوب باقة إعداد سيرتك الذاتية المقدمة من منصة "بعيد" وتكلفتها 99 دولار بمفردها.
  15. تخزين الصور في MongoDB ليست الطريقة الأفضل وهي ممكنة بالطبع من خلال تخزين الصور بواسطة base64. الأفضل بالنسبة لك هو تخزين الصور على وحدة التخزين وإدارة ذلك بواسطة multer ثم تخزين مسار الصور في قاعدة البيانات، وستحصلى على أفضل أداء في عرض الصور. وللعلم تستطيعي معالجة الصور أولاً بواسطة مكتبة Sharp باستخدامها كـ middleware لضغط الصور قبل تخزينها.
  16. ذلك غير متوفر حاليًا، وأفضل إضافة توفر لك ذلك في جميع المواقع التي لا تدعم الوضع الليلي هي الإضافة التالية: Dark Reader فالإضافات الأخرى سيئة وتجعل تجربة القراءة وتصفح الموقع غير جيدة مقارنًة بها، حيث تقوم بتعديل التنسيقات بشكل متناسب مع تنسيق الموقع الأصلي. وتستطيع تعطيلها على مواقع معينة أو تعديل الإعدادات لتنناسب معه، وذلك بالضغط على أيقونة الإضافة.
  17. هل عند الضغط على run python file in dedicated terminal لا يحدث شيء؟
  18. للإجابة على الأمر بشكل أفضل، هل المشروع للتدريب أم مشروع حقيقي، وما هو حجم البيانات وحجم الصور المتوقع وهل سيتم عرض عدد كبير دفعة واحدة؟ وهل هناك إمكانية لاستخدام التخزين السحابي للصور مثل Amazon S3؟
  19. لا هذا ولا ذاكّ، ما تحتاجه هو دراسة دورة خاصة بعلوم الحاسوب مثل CS50 أو ما شابهها على كورسيرا، ابحث عن Computer Science. وتلك الدورات يتم بها شرح الأساسيات والأمور المتعلقة بعلوم الحاسوب، ومنها تستطيع بناء قاعدة معرفة جيدة لتأهيلك لتصبح مهندس برمجيات وليس مبرمج، وإمتلاك القدرة على تعلم أكثر من لغة برمجة.
  20. ذلك برنامج تدريبي صيفي موجه للطلاب من منطقة الشرق الأوسط وشمال إفريقيا، وتستطيع المشاركة في البرنامج من مصر لا مشكلة، لكن بشروط: أن تكون طالبًا جامعيًا في مجال تقني أو ذي صلة. أن يكون لديك خبرة سابقة في مجال البرمجة أو تطوير الويب أو الذكاء الاصطناعي. أن تكون قادرًا على التواصل باللغة الإنجليزية بطلاقة. ويتم قبول الطلبات في وقت محدد من كل عام، واختيار المتدربين بناءًا على مؤهلاتهم وخبرتهم، ويوفر البرنامج فرصًا تدريبية في مختلف مجالات Google، مثل الهندسة والمنتجات والتسويق. وحاليًا التقديم لعام 2025 تم غلقه في 25 أكتوبر الماضي، حيث كان متاح بدءًا من 16 سبتمبر. تابع موقع opportunitiesforyouth لمعرفة متى يتم الإعلان.
  21. أساسيات الرياضيات فقط أي ما تم دراسته في المرحلة الأساسية من تعليمك، تستطيع البحث على اليوتيوب عن الأساسيات ومراجعتها. بالنسبة للخوارزميات فما تحتاجه هو دراسة discreet math فقط، وهي الرياضيات المنفصلة وذلك فرع من الرياضيات يهتم بدراسة الكيانات المنفصلة، أي الكيانات التي يمكن عدها بشكل منفصل. على عكس الرياضيات المستمرة التي تتعامل مع الكميات المتصلة مثل الأرقام الحقيقية مثل درجة الحرارة، يمكن أن تكون 20 درجة مئوية، أو 20.5 درجة مئوية، أو 20.123 درجة مئوية، وهكذا. تركز الرياضيات المنفصلة على الكيانات المنفصلة مثل الأعداد الصحيحة، الرسوم البيانية، المجموعات، والأنظمة المنطقية، مثل عدد الطلاب في الفصل، يمكن أن يكون 20 طالبًا، أو 21 طالبًا، لكن لا يمكن أن يكون 20.5 طالبًا. وهي مهمة لأنها توفر الأدوات الأساسية لفهم وفك تشفير العالم الرقمي الذي نعيش فيه، وتستخدم مفاهيمها في العديد من التطبيقات العملية، من تصميم مواقع الويب إلى تطوير الألعاب إلى تحليل البيانات.
  22. كلاهما يقدمان خدمة مختلفة، منصة GitHub هي خاصة بإدارة إصدارات الكود المصدري من خلال GIT وتخزين الكود ومشاركة المشاريع وتسهيل العمل بين فريق العمل. بينما Gitpod هو بيئة تطوير سحابية Cloud IDE لتشغيل مشاريع Git بشكل تلقائي في حاويات Docker، أي المكان الذي تعمل على كتابة الكود به، أي عند فتح مشروع في Gitpod، فإنه يُنشئ بيئة تطوير مُخصصة في حاوية Docker. وللعلم تستطيع تشغيل المنصة على حاسوبك أيضًا وليس على السحابة فقط. وتوفر مجموعة من الأدوات الأساسية لتطوير البرمجيات، مثل محرر الكود، وترجمة الكود، واختبار الكود، وإدارة الإصدارات، وتستطيع الوصول إلى بيئة التطوير من أي جهاز متصل بالإنترنت، دون الحاجة إلى تثبيت أي برامج، فلا حاجة لتثبيت بيئة تطوير محلية. أو يمكنك التطوير بشكل محلي لكن بشكل أسرع بسبب استخدام حاويات Docker. وتتيح لك الربط مع مستودعات Git مثل GitHub، GitLab، Bitbucket، وغيرها.
  23. دمج البيانات مثل ربط قطع البازل، أي لدينا مجموعة من قطع البازل، كل قطعة تمثل جدولًا في قاعدة البيانات، لكي تُكمل الصورة الكاملة، تحتاج إلى ربط هذه القطع معًا. هنا يأتي دور JOIN في SQL. أي JOIN هي عبارة SQL تُستخدم لدمج البيانات من جداول متعددة بناءًا على علاقة مشتركة بينها، مثل ربط قطع البازل معًا لإنشاء صورة كاملة. ويوجد أنواع لـ JOIN، أولها INNER JOIN مثل ربط قطعتين من البازل تتناسبان تمامًا معًا، ويعرض فقط الصفوف التي تتطابق قيمها في مفتاح الربط في كلا الجدولين. مثل جدول الطلاب يحتوي على معلومات عن الطلاب (اسم الطالب، رقم الطالب). جدول الدرجات يحتوي على معلومات عن درجات الطلاب (رقم الطالب، اسم المادة، الدرجة). SELECT Students.Name, Grades.Subject, Grades.Grade FROM Students INNER JOIN Grades ON Students.StudentID = Grades.StudentID; سيُظهر الاستعلام أسماء الطلاب والمواد التي درسها كل طالب والدرجات التي حصل عليها. النوع الثاني هو LEFT JOIN مثل ربط قطعة من البازل مع قطعة أخرى وقد تكون هناك فراغات Null، ويعرض جميع صفوف الجدول الأيسر، مع إمكانية عرض البيانات المتوافقة من الجدول الأيمن. مثل جدول الطلاب يحتوي على معلومات عن الطلاب (اسم الطالب، رقم الطالب). وجدول الأنشطة يحتوي على معلومات عن الأنشطة التي يشارك فيها الطلاب (رقم الطالب، اسم النشاط). SELECT Students.Name, Activities.ActivityName FROM Students LEFT JOIN Activities ON Students.StudentID = Activities.StudentID; النتيجة هي أسماء جميع الطلاب، مع عرض أسماء الأنشطة التي يشارك فيها كل طالب إن وجدت، وإن لم يشارك طالب في أي أنشطة، ستُظهر قيمًا فارغة (NULL) في عمود "اسم النشاط". النوع الثالث هو RIGHT JOIN مثل ربط قطعة من البازل مع قطعة أخرى وقد تكون هناك فراغات Null، ويعرض جميع صفوف الجدول الأيمن، مع إمكانية عرض البيانات المتوافقة من الجدول الأيسر. مثل جدول الأنشطة يحتوي على معلومات عن الأنشطة التي يشارك فيها الطلاب (رقم الطالب، اسم النشاط). وجدول الطلاب يحتوي على معلومات عن الطلاب (اسم الطالب، رقم الطالب). SELECT Activities.ActivityName, Students.Name FROM Activities RIGHT JOIN Students ON Activities.StudentID = Students.StudentID; نتيجة الاستعلام هي أسماء جميع الأنشطة، مع عرض أسماء الطلاب الذين يشاركون فيها إن وجدت، وفي حال لم يكن هناك طالب مرتبط بنشاط معين، ستُظهر قيمًا فارغة (NULL) في عمود "اسم الطالب". النوع الأخير هو FULL JOIN مثل ربط جميع قطع البازل معًا، بغض النظر عن وجود فراغات، ويعرض جميع صفوف كلا الجدولين، سواء كانت متوافقة أم لا. مثل جدول الطلاب يحتوي على معلومات عن الطلاب (اسم الطالب، رقم الطالب). وجدول المعلمين يحتوي على معلومات عن المعلمين (اسم المعلم، رقم المعلم). SELECT Activities.ActivityName, Students.Name FROM Activities RIGHT JOIN Students ON Activities.StudentID = Students.StudentID; ستحصل على أسماء جميع الطلاب والمعلمين، مع عرض البيانات المتوافقة بينهما، وإن لم يكن هناك تطابق، ستُظهر قيمًا فارغة (NULL) في الأعمدة من الجدول الآخر.
×
×
  • أضف...