-
المساهمات
4863 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
60
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد عاطف17
-
لا يقوم بإيقاف الإنترنت لديك . بل يقوم بإيقاف وصول الإنترنت إلى Notebook editor الحالي . أى أنه في هذا ال Notebook لن تستطيع تثبيت مكتبات خارجية أو تنزيل أى شئ من خلال الإنترنت . وهذا بسبب أنه في بعض المسابقات مثل تلك التي تحاول الإشتراك بها غير مسموح بالوصول إلى الإنترنت حتي لا تستطيع تنزيل مكتبات خارجية أو بيانات لمساعدتك في تلك المسابقة ويجب الإعتماد على البيانات والمكتبات التي توفرها لك Kaggel في تلك المسابقة.
- 7 اجابة
-
- 1
-
-
مرحبا @حسان. لقد تم تصميم الدورة بشكل مميز . حيث تم تقسيمها إلى عدة مسارات . وكل مسارات تم تقسيمه إلى وحدات وكل وحدة يوجد بها عدد من الدروس . وأيضا تم تصميم الدورة بالترتيب المناسب للطلاب وخصوصا دورة علوم الحاسوب . حيث هي لدراسة أساسيات البرمجة والحاسوب عموما ولهذا فهي للطلاب المبتدأين ومن ليس لديهم أى خبرة مسبقة في البرمجة. لهذا يتوجب عليك متابعات المسارات بالترتيب الموجود بها ويفضل عدم إهمال أو ترك أى مسار . وإليك الأجابات التالية لشرح ونصائح أفضل حول كيفية المذاكرة : أيضا الدورة هي تحتوي على دروس تم تسجيلها مسبقا ويمكنك مشاهدة تلك الدروس . ولكن يتواجب في الأكاديمية فريق كبير ومتميز من المدربين إذا حدثت معك مشكلة في درس ما أو لم تفهم جزء معين يمكنك دائما السؤال أسفل الدرس الذي به مشكلتك وسيتم مساعدتك في الحال. أيضا الدورة تحتوي على دروس نظرية ودروس عمليه. وفي الدروس العملية توجد تمارين في نهاية كل درس ينبغي عليك القيام بها ويمكنك السؤال أسفل الدرس عن تقييم هذا الحل وسيقوم المدربون بذلك.
- 3 اجابة
-
- 1
-
-
وعليكم السلام ورحة الله وبركاته. إن حقوق النشر هي حقوق أصاحب العمل الإبداعي مثل النصوص (كالمقالات والكتب والمنشورات) و الصور و الأكواد البرمجية الخاصة (مثل الخوارزميات والأكواد التي تميز مشروعك عن الأخرين ) و الفيديوهات و غيرها وذلك ليتم حمايتها من الاستخدام أو النسخ أو التوزيع بدون إذن صاحب العمل. ولهذا فإذا أنشأت موقعا مخصصا لعميل و قد كنت إستخدمت صور خاصة لك مثل ال logo أو صور خاصة بالموقع نفسه من تصميمك أو خوارزميات من تصميمك فهنا صاحب الموقع له حقوق النشر عليها. أما بخصوص التسجيل فغالبا ما يتم تلقائيا تطبيق حقوق النشر (copyright) إذا كنت أنت أول من أنشأت هذا العمل ولكن لضمان الحقوق القانونية وحماية أقوى لك يمكنك التسجيل وذلك لضمان حقك أكثر في حالة النزاع مع شخص سرق أى عمل لك. ولكن يجب الإنتباه أن هناك الكثير من المواقع التي تعمل نفس العمل مثل المتاجر الإلكترونية وغيرها من المواقع المشهورة وهنا تلك الأكواد منتشرة بشكل كبير لهذا ليس لها حقوق ملكية خاصة إلا لو كنت تمتلك خوارزمية معينه لك ليست موجودة عند الأخرين . مثل (تتبع العملاء أو الإعلانات الخاصة وغيرها من الخوارزميات التي تساعد نشاطك بشكل كبير وليست متاحة لدى أحد أخر). أما السجل التجاري فهو شئ أخر تماما وهذا ليس من إختصاص المبرمج . كل ما عليك هو إذا كان صاحب المشروع له سجل تجارى أن تقوم بكتابة رقم السجل في الموقع أو الفواتير التي يتم إصدارها للعملاء . ولكن تسجيل الموقع يتم مع تسجيل شركة هذا الشخص لهذا أنت لست ملزما بذلك. وأيضا يختلف التسجيل التجاري من دولة إلى أخرى لهذا الشخص صاحب المشروع هو المسؤول عن ذلك وبالأخص لو كان عميلا ليس من البلد التي توجد بها.
- 3 اجابة
-
- 1
-
-
ستجدين أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
-
هذا يعتمد على المعرفة التي تمتلكها . فلو كنت تعلمت لغات مثل HTML و CSS و JS, فالأمر سيصبح بالنسبة لك جيد . أما إذا لم تكن قد تعلمتهم فسيتوجب عليك تعلم الأساسيات على الأقل. أو يمكنك إستخدام قوالب جاهزة وهي أكواد HTML و CSS يمكنك إستخدامها مباشرة في مشروعك. حيث يجب عليك أولا أن تبدأ بالواجهة الأمامية لتقوم بإنشاء واجهة المستخدم والتي ستحتوي على المميزات التي تريد إضافتها في موقعك . بعد ذلك يتوجب عليك أن تكون على معرفة عميقة ب Django لتستطيع إستخدام مميزاته القوية . مثل المهجرات migrations و النماذج models و لوحة التحكم Admin وأيضا الترجمة الخاصة ب django إذا أردت جعله متعدد اللغات . وإليك قسم المقالات والدروس على الأكاديمية والذي يحتوي على مشاريع ودروس جيدة لإطار Django يمكنك الإطلاع عليها من هنا : https://academy.hsoub.com/programming/python/django/
-
ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
-
وعليكم السلام ورحمة الله وبركاته. هل المستخدم الذي تحاول تثبيت البرنامج عليه هو مستخدم مسؤول (administrator) ؟ حيث يجب ان يكون المستخدم مسؤول لتثبيته . إذا إستمرت المشكلة يمكنك إتباع الخطوات في الفيديو التالي : https://www.youtube.com/watch?v=wPUmyZ3zNxM&t=72s
-
إذا أردت تطبيقات عن الأساسيات أو المسابقات فيوجد العديد من مواقع حل المشكلات (problem solving) والتي توفر تطبيقات ومسائل بمختلف المستويات يمكنك التدرب عليها لتمرين مهارات حل المشكلات لديك . ومن تلك المواقع : Hackerrank و LeetCode: هذه المواقع تقدم تحديات برمجية تمكنك من تطبيق المفاهيم المختلفة بما في ذلك الأساسيات و الدوال، وتقديم الحلول الخاصة بك لهذه التحديات ولكن يفضل الدخول في المستويات المبتدئة. PyBites: يوفر PyBites تحديات يومية وأسبوعية لتطوير مهاراتك في Python. codeforces : وهو من المواقع الشهيرة جدا التى تقوم بعمل مسابقات عالمية يوميا وإسبوعيا حيث تكون تلك المسابقات عبارة عن مشاكل ويجب حلها عن طريق البرمجة وتختلف صعوبة المسابقات من مسابقة إلى أخرى و أيضا يعطيك نقاط عند دخول كل مسابقة وحل المشاكل لتتابع تقيمك وسط العديد من المبرمجين حول العالم . Codewars : يقدم تحديات برمجية مصنفة بمستويات مختلفة تتيح لك تطوير مهاراتك بشكل تدريجي. ولذلك أنصحك بحل التحديات والتدرج في المستويات قليلا حتي تستطيع تنمية مهاراتك وأيضا التدرب على ما تعلمته.
-
دورة علوم الحاسوب توفر لك معلومات مكثفة حول مختلف مفاهيم لغات وتقنيات البرمجةو هي أساسية لزيادة معلوماتك حول مجال التقنية بشكل عام. و بانتهائك منها سيكون لديك خبرة جيّدة بدءً من الأساسيات والأفكار والمناهج النظرية مثل هندسة البرمجيات والبرمجة كائنية التوجه إلى التعامل مع أنظمة التشغيل ولغات البرمجة التي تم التطرق لها من خلال الأمثلة العملية في الدروس، وأيضاً سيكون لديك معرفة شاملة حول قواعد البيانات وطرق التعامل مع النوعين العلائقي وغير العلائقي. وفيها أيضاً مسار مخصص للدخول إلى عالم الويب والتعرّف على آلية عمل مطوري الويب في حال أحببت الانتقال إلى مجالات تطوير الويب لاحقاً لهذا إذا أردت التخصص في الواجهة الخلفية أو الأمامية فهذا المسار مهم جدا. ويمكنك قراءة الإجابة التالية لمزيد من التفاصيل حول الدورة : ولذلك فتلك الدورة مهمة للتأسيس عليها وفهم أساسيات الحسوب و التعامل مع الخوادم والأنظمة .
- 4 اجابة
-
- 1
-
-
أعتقد أنك تقصد موسوعة حسوب حيث يوجد توثيق لعدة لغات هناك ودروس يمكنك متابعتها على الموسوعة من خلال الرابط التالي : https://wiki.hsoub.com/Python ويوجد أيضا كتاب هنا خاص على الأكاديمية بخصوص تعلم بايثون وإليك الرابط الخاص به : وتوجد مقالات كثيرة هنا بخصوص بايثون وإليك الرابط الخاص بها: https://academy.hsoub.com/programming/python/
-
وعليكم السلام ورحمة الله وبركاته. من الممكن أن الدالة IterativeImputer قد تعيد أرقام سالبة وذلك لأن تلك الدالة تقوم بإكمال القيم المفقودة في مجموعة البيانات، مما قد ينتج عنها قيم غير متوقعة مثل الأرقام السالبة وذلك خصوصا إذا كانت البيانات الأصلية ليدك تحتوي على قيم غير مناسبة أو إذا كانت هناك مشكلة في النموذج المستخدم لإكمال القيم المفقودة. وإذا أردت عدم السماح بالقيم السالبة فتلك الدالة من الممكن أن تقبل معامل min_value وهو أقل قيمة من الممكن أن تخرجها الدالة ويمكنك قراءة التوثيق الرسمي : https://scikit-learn.org/stable/modules/generated/sklearn.impute.IterativeImputer.html#:~:text=min_valuefloat or array-like of shape (n_features%2C)%2C default%3D-np.inf أما بالنسبة لـ OrdinalEncoder فهذه الدالة تستخدم لتحويل المتغيرات الفئوية إلى متغيرات عددية ولكنها لا يمكن أن تعطي قيم سالبة لأنها تعمل على تحويل الفئات إلى أرقام صحيحة تبدأ من 0 إلا إذا أردت تحديد الفئات يدويا بنفسك حينها يمكنك وضعها بقيمة سالبة.
- 2 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. مع التدريب الكثير وكتابة الأكواد ستجد أن الأمور تضح لك وستسيطع كتابة أكواد مثل تلك التي ذكرتها. ولكن يجب عليك على الأقل معرفة الأساسيات. حيث هنا إستخدمنا تعبير lambda وهو يعتبر دالة مجهولة حيث هي كما أنك قمت بتعريف دالة تستقبل معاملات ولكنها تعيد قيمة واحدة فقط. يمكنك قراءة الشرح التالي لمزيد من التفاصيل حول تعبير lambda : ولنشرح معا الكود المرفق : data_train.apply : هنا إستخدمنا الدالة apply وتلك الدالة تقوم بأخذ معامل وهذا المعامل هو دالة يتم تنفيذها على كل عمود في الـ DataFrame أى أننا هنا نريد تنفيذ دالة معينة على كل عمود من بيانات ال data_train. وهنا قمنا بتمرير تعبير lambda وكما وضحنا هو دالة مجهولة . lambda col هنا العمود سيتم تمريره للدالة lambda كمعامل . col.astype(int) if original_dtypes[col.name] == 'int64' else col وهنا هو الجزء الذي سيتم إعادته من الدالة . ولاحظ هنا أننا إستخدمنا التعابير الشرطية . حيث سنقوم بتحويل العمود إلى نوع int إذا كان نوع البيانات الأصلي هو int64 أما إذا لم يكن العمود من نوع int64 سيتم إعادته كما هو ولن يتم تحويله.
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. هذا بسبب أن IterativeImputer يقوم بإستخادم طرق إحصائية لتقدير القيم المفقودة وأيضا الخوارزمية التي يعمل بها تقوم بإجراء عمليات حسابية مما قد تتضمن قيم غير صحيحة (قيم العشرية). و لحل تلك المشكلة يمكننا أولا الإحتفاظ بقائمة الأعمدة ال int و ال float قبل تطبيق الIterativeImputer ومن ثم بعد ذلك نقوم بتحويلها مرة أخرى إلى int. int_columns = data_train.select_dtypes(include=['int64']).columns float_columns = data_train.select_dtypes(include=['float64']).columns imputer = IterativeImputer(max_iter=5, random_state=42, initial_strategy='mean') imputer_data = imputer.fit_transform(data_train[float_columns]) data_train[float_columns] = imputer_data data_train[int_columns] = data_train[int_columns].astype('int') print(data_train.info())
- 6 اجابة
-
- 1
-
-
أولا يجب أن يكون مدونتك متوافقة مع محركات البحث وذلك لتظهر للمستخدمين في مواقع البحث وأيضا تساعد في فهرسة الموقع .. وحتي لو قمت بزيادة الإعلانات لمدونتك وكانت المدونة ليست متوافقة مع محركات البحث فمن الممكن أن يؤثر ذلك بالسلب على موقع إذا لم يعجب الذوار أيضا. لذلك يجب عليك ان تهتم بال SEO ولكن ذلك سيأخذ وقتا حتي يظهر موقعك ويتم فهرسته بالشكل الصحيح وخلال ذلك يمكنك أيضا عمل إعلانات مدفوعة لموقع. يرجى قراءة الإجابة التالية لتفاصيل ونصائح أفضل لك :
-
توجد عدة طرق . يمكنك إستخدام المتصفح في ذلك وإنشاء ملف html و أخذ النص الذي تريده منه من خلال حقل أو غيره. ومن ثم إستخدام كود java script التالي الذي سيقوم بتحويل النص إلى صوت let text ="how are you"; let utterance = new SpeechSynthesisUtterance(text); speechSynthesis.speak(utterance); إذا أردت إنشاء برنامج سطح مكتب مثلا بلغة C# يمكنك تحويل النص إلى كلام من خلال الوحدة Synthesis وإليك الكود التالي الذي يساعدك في ذلك : using System; using System.Speech.Synthesis; class Program { static void Main() { SpeechSynthesizer synthesizer = new SpeechSynthesizer(); synthesizer.SelectVoiceByHints(VoiceGender.Neutral, VoiceAge.Adult); string text = "مرحبا"; synthesizer.Speak(text); } }
-
التوثيق الرسمي يكفي . يمكنك كتابة إسم المكتبة أو إطار العمل في جوجل وبعدها كلمة docs وسيظهر لك الموقع الرسمي للتوثيق. فمثلا إذا أردت توثيق nextjs الرسمي يمكنك كتابة : nextjs docs وأول نتيجة ستظهر لك ستكون التوثيق الرسمي .
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. إسمح لي أن أصحح لك بعض الأمور . أولا لا يوجد ما يسمي تغير المفاهيم أو إختلافها في الإصدارات الجديدة سواء من المكتبات أو أطر العمل. إن المفاهيم واحدة ولا يتم الإختلاف فيها . بل الإختلاف يكون في خصائص المكتبات وأطر العمل حيث يتم إضافة خصائص جديدة أو حذف خصائص قديمة لم تعد مهمة . أو تعديل خصائص كانت موجودة وطريقة إستخدامها إختلفت قليلا . لهذا إذا كنت قد فهمت الأساسيات والمفاهيم الرئيسية فسيكفي فقط الإطلاع على الوثائق الرسمية لتعرف كيف تتعامل مع التحديثات. ثانيا لا يوجد مبرمج جيد حينما يتم إصدار تحديث جديد لمكتبة أو إطار عمل أن يذهب ليشترك في دورة ليعرف كيف يتعامل معها . بل ينبغي عليه معرفة كيفية تعلمها أو قراءة التغيرات التي حدثت من خلال الوثائق الرسمية أو غيرها . ولكن الإشتراك في دورة جديدة لتبدا من البداية فهذا ليس بالأمر الجيد. ثالثا عند نزول إصدار حديث لا يتم إهماله أو عدم العمل به . بل توجد مشاريع كثيرة تعمل على إصدارات قديمة جدا منذ أكثر من 5 سنوات . وستجد وظائف في شركات كبيرة أو حتي مواقع عمل حر تعمل على مشاريع بإصدارات قديمة . لهذا فإن ما تعلمته تستطيع العمل به . أما بخصوص الدورات هنا فهي أولا يتم تحديثها بإستمرار ولكن مع التطور السريع للإصدارات والمكتبات من الصعب دائما مواكبة تلك التطورات ولكن دائما ما يتم تحديث الدروس إذا كانت الإصدارات الأحدثت قد إختلفت تماما عن مثيلتها السابقة في الدورة . ويمكنك متابعة التحديثات التي تمت وستجد أنه بالفعل قد تم تحديث عدة مسارات بأحدث الإصدار في شهر 12 السابق : https://academy.hsoub.com/release-notes/ وأيضا لن تحتاج إلى شراء أى دورة أخرى فهنا من مميزات الأكاديمية أنه سيكون لك وصول مدى الحياة للدورة وأى تحديث عليها تستطيع مشاهدة دون دفع أى رسوم إضافة أو الإشتراك من جديد. وأخيرا ينبغي عليك التركيز على فهم الأساسيات و التطبيق مع المدرب بالإصدارات الموجودة في الدروس وبعد الإنتهاء من المسار يمكنك المحاولة مع نفسك في كيفية تحديث أو إنشاء المشروع من البداية بالإصدارات الأحدث وحينها ستحقق أقصي إستفادة وتزداد خبرتك في التعامل مع المكتبات ومع الإصدارات بعد تحديثها.
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. LabelEncoder: نقوم بإستخدامه لتحويل القيم الفئوية (Categorical) إلى قيم رقمية. فلو لدينا فئات غير مرتبة مثل "أحمر" و "أخضر" و "أزرق" ونحتاج إلى تحويلها إلى قيم عددية لنستيطع تحليلها يساعدنا الLabelEncoder في ذلك. مثال : from sklearn.preprocessing import LabelEncoder labels = ["أحمر"، "أخضر"، "أزرق","أحمر] le = LabelEncoder() encoded_labels = le.fit_transform(labels) print(encoded_labels) # Output: [0, 1, 2, 0] وإليك التوثيق الرسمي : https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html OrdinalEncoder: أيضا نستخدمه لتحويل الفئات النصية إلى أرقام، ولكن الفئات هنا تكون مرتبة أى لها ترتيب معين عكس الLabelEncoder. حيث يجب هنا تحديد الترتيب يدويا . مثال from sklearn.preprocessing import OrdinalEncoder encoder = OrdinalEncoder() encoder.fit([['heigh',3], ['medium',2], ['low',1]]) encoder.transform([['medium'],['heigh'],['low']) وإليك التوثيق الرسمي له : https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OrdinalEncoder.html
- 4 اجابة
-
- 1
-
-
ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. ويرجى رفع الملف الصحيح حيث هذا الملف خاطئ وليس هو الذي يحوي ملفات المشروع.
-
وعليكم السلام ورحمة الله وبركاته. يرجى فتح قائمة ويندوز وكتابة Photos . عندما يظهر برنامج Photos يرجى الضغط بالزر الأيمن عليه وإختيار App settings : بعد ذلك يرجى الذهاب إلى أسفل والبحث عن Reset . يرجى الضغط على Reset : ويمكنك محاولة فتح الصور مرة أخرى الآن
- 2 اجابة
-
- 1
-
-
أولا توجد ثلاثة وظائف رئيسية في البرمجة : تطوير الواجهات الأمامية (Front end) تطوير الواجهات الخلفية (back end) تطوير الويب (Full Stack) لذلك هل تريد إنشاء موقع ويب للواجهات الأمامية أم إنشاءه بأكمله كواجهة أمامية وخلفية ؟ يمكنك قراءة الإجابة التالية للتوضيح الفرق بين تطوير الواجهات الأمامية و تطوير الواجهات الخلفية : نأتي الآن لسؤالك حول أفضل لغة : لا يوجد في البرمجة ما يسمى الأفضل في البرمجة، بل لكل تقنية استخدامها الأمثل لها ويمكنك قراءة الإجابة التالية للتوضيح بين الفرق بين اللغات : وإليك الإجابة التالية لتوضيح الدورات المتاحة في الأكاديمية و ما الذي ستوفره لك بعد الإنتهاء منها :
-
لا توجد صلاحية للدورة وتنتهي . بل من مميزات أكاديمية حسوب أن بمجرد شراءك للدورة سيكون لك الوصول إليها مدى الحياة وذلك يشمل أى تحديثات مستقبلية تتم عليها ويمكنك الوصول ومتابعتها في أى وقت. يمكنك متابعة الدروس بالترتيب حيث تم تقسيم الدورة إلى مسارات وكل مسار يوجد به عدة وحدات و الوحدة تتكون من مجموعة من الدروس .
-
المشكلة لديك في المكون Header وذلك لأن المكون Header لا يتم تحديثه تلقائيا بعد تسجيل الدخول وذلك لأن التغييرات في localStorage لا تؤدي إلى إعادة تصيير (render) تلقائية للمكونات في. ولحل هذه المشكلة من الممكن إستخدام الأحداث. لقد لاحظت أنك في مكون login أطلقت حدث userUpdated . لهذا يجب علينا تعديل المكون Header ليستمع إلى هذا الحدث : وإليك المكون Header بعد تعديله والإستماع إلى الحدث : "use client" import Image from "next/image"; import Link from "next/link" import {useState,useEffect} from "react" export default function Header() { const [user, setUser] = useState({}); useEffect(() => { const handleUserUpdate = () => { setUser(JSON.parse(localStorage.getItem("user_data"))); }; setUser(JSON.parse(localStorage.getItem("user_data"))); window.addEventListener("userUpdated", handleUserUpdate); // الاستماع للحدث return () => { window.removeEventListener("userUpdated", handleUserUpdate); // تنظيف الحدث }; }, []); const handleLogout = ()=>{ localStorage.removeItem("user_data"); setUser({}); } return ( <> <div className="bg-white shadow-md sticky top-0 z-10"> <div className="max-w-7xl mx-auto px-6 py-4 flex items-center justify-between"> {/* Logo Section */} <div className="flex items-center space-x-3"> <Link href="/"> <Image src="/next.svg" width={100} height={100} alt="Logo" className="h-8 w-auto" /> </Link> </div> {/* Navigation Links */} <div className="hidden md:flex space-x-8"> <Link href="/" className="text-gray-700 hover:text-blue-600 transition duration-300">Home</Link> <Link href="/movies" className="text-gray-700 hover:text-blue-600 transition duration-300">Movies</Link> <Link href="/movies/create" className="text-gray-700 hover:text-blue-600 transition duration-300">Create Movie</Link> <Link href="/" className="text-gray-700 hover:text-blue-600 transition duration-300">About</Link> </div> {/* Login and Submit Buttons */} <div className="flex space-x-4"> {user?.name ? ( <div className="flex items-center justify-between gap-4"> <Link href="/user" className="text-sm font-medium text-gray-700" > {user.name} </Link> <button className="px-6 py-2 text-sm font-semibold text-white bg-red-600 rounded-lg hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 transition duration-300" onClick={handleLogout} > Logout </button> </div> ) : ( <> <Link href="/login"> <button className="px-6 py-2 text-sm font-semibold text-gray-700 border border-gray-300 rounded-lg hover:bg-gray-100 transition duration-300"> Login </button> </Link> <Link href="/register"> <button className="px-6 py-2 text-sm font-semibold text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition duration-300"> Sign Up </button> </Link> </> )} </div> </div> </div> </> ); }
-
وعليكم السلام ورحمة الله وبركاته. لنشرح أولا الدالتين : select_dtypes(): نستخدم تلك الدالة لإختيار الأعمدة بناء على نوع البيانات سواء كانت object أو float أو int أو غيرها. المثال التالي سيقوم بتحديد الأعمدة التي من نوع object فقط: data_train.select_dtypes(include=['object']) apply(): نستخدمها لتطبيق دالة معينة على كل عمود أو صف في DataFrame . المثال التالي سيطبق fit_transform من label_encoder على كل عمود : data_train.apply(label_encoder.fit_transform) الآن لنفرق بين الكودين الذي أرفقتهم : الطريقة الأولى وهي استخدام for loop مع if : مميزاتها: الكود واضح ومن ينظر إليها يفهم سريعا ما هو المطلوب تنفيذه من هذا الكود. يمكنك إضافة أي شروط أو عمليات إضافية داخل الـ for loop بسهولة. عيوبها: استخدام for loop يعتبر أبطأ بالنسبة إلى الدوال المدمجة مثل apply() أو select_dtypes حيث تلك الدوال تم إنشاءها لتكون أسرع وأفضل من الأكواد المجردة . الطريقة الثانية وهي استخدام select_dtypes و apply : مميزاتها: كما وضحت لك أن الدوال select_dtypes و apply تم إنشاءها لتكوم أفضل وأسرع وهكذا نستطيع التعامل مع البيانات بشكل أسرع من الـ for loop. الكود أقصر من الكود الأول. عيوبها: تلك الطريقة ليست سهلة في القراءة وليست أوضح كما في الطريقة الأولى . إذا كنت بحاجة إلى إضافة شروط كثيرة فهذه الطريقة ليست الأفضل في ذلك. لهذا إذا كنت تبحث عن الأداء الأسرع والأفضل فالطريقة الثانية أفضل بكثير .
- 4 اجابة
-
- 1
-