-
المساهمات
2489 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
13
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Chihab Hedidi
-
بالنسبة لأساسيات البرمجة فهذه الأساسيات تعتبر هامة جدا، إذا كنت تخطط لتطوير مهاراتك في مجال البرمجة، فإن فهم البنية البيانية والتفكير المنطقي والخوارزميات يمكن أن يساعدك بشكل كبير، لا يجب أن تكون هناك ضرورة للانغماس في C++ من البداية، يمكنك البدء مع لغة أخرى أكثر توجيها للويب مثل JavaScript أو Python. بخصوص دورة ال front-end تعتبر ممتازة للبداية في تطوير الواجهة الأمامية، و لكن لا تتوقف عند هذا الحد، بعد الإنتهاء من الدورة حاول القيام بمشاريع أخرى لتتعلم أكثر و تكتسب خبرة في هذا المجال. بخصوص السؤال الثالث يمكنك البدء باستخدام jQuery و Bootstrap، ولكن فهم أساسيات JavaScript و CSS يظل مهما، عندما تكون جاهزاً للتحديات الأكبر، يمكنك استكمال تعلمك لمكتبات أخرى أو حتى الانتقال إلى إطارات عمل (Frameworks) مثل React أو Angular. ثلاث ساعات يومياً هي مدة جيدة جداً. مع الالتزام والتحفيز، يمكنك تحقيق تقدم كبير. احتفظ بتوازن جيد بين تعلم النظريات والتطبيق العملي. و يمكنك أيضا الإطلاع على هذه المقالات التي ستساعدك في مسارك: أتمنى لك التوفيق في رحلتك التعليمية والمهنية، وإذا كنت بحاجة إلى أي مساعدة أو استفسار، فلا تتردد في طرح المزيد من الأسئلة.
-
في مكتبة NumPy، تقوم argmin و argmax بإرجاع الفهرس لأدنى قيمة أو أعلى قيمة في مصفوفة، سأشرح لك بمثال لتفهم أكثر: import numpy as np arr = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3]) # العثور على الفهرس لأدنى قيمة باستخدام argmin index_of_min = np.argmin(arr) min_value = arr[index_of_min] # العثور على الفهرس لأعلى قيمة باستخدام argmax index_of_max = np.argmax(arr) max_value = arr[index_of_max] print("الفهرس لأدنى قيمة:", index_of_min) print("أدنى قيمة:", min_value) print("الفهرس لأعلى قيمة:", index_of_max) print("أعلى قيمة:", max_value) و ستكون النتائج بالشكل التالي: الفهرس لأدنى قيمة: 1 أدنى قيمة: 1 الفهرس لأعلى قيمة: 5 أعلى قيمة: 9 argmin: أعطتنا الفهرس لأدنى قيمة: 1 (القيمة 1 في المصفوفة هي الأدنى) argmax: أعطتنا الفهرس لأعلى قيمة: 5 (القيمة 9 في المصفوفة هي الأعلى)
- 2 اجابة
-
- 1
-
-
المشكلة تكمن في عدم القدرة على استيراد Django، و هذا بسبب عدم تثبيته إتبع الخطوات التالية من أجل تثبيته بطريقة صحيحة: قبل تشغيل الأمر python manage.py runserver، قمت بتثبيته بهذا الأمر: pip install django في حالة كان مثبت من قبل ،قم بتحديث Django إلى أحدث إصدار باستخدام الأمر: pip install --upgrade django بعد اتخاذ هذه الخطوات، قم بتشغيل الأمر python manage.py runserve مرة أخرى وتأكد من أن المشكلة قد حلت.
-
يمكنك القيام بذلك عن طريقة وضع treeview تحتوي على كل الأسماء التي تقرأها من ال dataset الخاصة بك و من ثم تقوم بتعريف دالة للبحث عن الأسماء المحددة التي تريدها، يمكنك الإستعانة بهذا الكود و التعديل عليه حسب إحتياجاتك: import pandas as pd import tkinter as tk from tkinter import ttk # إنشاء DataFrame تجريبي data = {'Name': ['أحمد محمد علي', 'محمد أحمد علي', 'علي أحمد محمد', 'يوسف أحمد', 'أحمد علي']} df = pd.DataFrame(data) # إنشاء نافذة Tkinter root = tk.Tk() root.title("بحث في DataFrame") # إضافة Treeview لعرض النتائج columns = ['Name'] tree = ttk.Treeview(root, columns=columns, show='headings') # تحديد عناوين الأعمدة for col in columns: tree.heading(col, text=col) # تحديد عرض الأعمدة tree.column('Name', width=200) # إضافة البيانات إلى Treeview for index, row in df.iterrows(): tree.insert('', 'end', values=(row['Name'],)) # إضافة حقل لإدخال اسم البحث search_var = tk.StringVar() search_entry = tk.Entry(root, textvariable=search_var, width=20) search_entry.grid(row=0, column=1, padx=10, pady=10) tree.grid(row=0, column=0, sticky='nsew') # دالة للبحث عن الاسم وعرض النتائج في Treeview def search_name(): query = search_var.get().strip() # حذف النتائج الحالية for row in tree.get_children(): tree.delete(row) # إيجاد النتائج المطابقة وإضافتها إلى Treeview for index, row in df[df['Name'].str.contains(query)].iterrows(): tree.insert('', 'end', values=(row['Name'],)) # إضافة زر لتشغيل البحث search_button = tk.Button(root, text="ابحث", command=search_name) search_button.grid(row=0, column=2, padx=10, pady=10) # تشغيل النافذة root.mainloop() حاول بين الحين و الآخر كتابة الكود لوحدك و واجه المشكلات التي تكون فيه، هذا سيحفز فيك حل المشكلات البرمجية و يصبح لديك خبرة مع مرور الوقت. يمكنك أيضا قراءة المقالات الخاصة بالبيثون و واجهات المستخدم من خلال الرابط التالي:
- 4 اجابة
-
- 1
-
-
من فضلك ارفق ملف الاكسل الذي تعمل عليه حتى يمكنني فهم المشكل بشكل أفضل.
- 10 اجابة
-
- 1
-
-
تظهر الرسالة "See the caveats in the documentation" عندما تقوم بتعديل قيم في DataFrame بطريقة يمكن أن تؤثر على النسخة الأصلية، يعني هذا أن هناك احتمالا لحدوث تأثير جانبي على البيانات الأصلية. قد ظهرت هذه الرسالة إذا كانت هناك قيم غير صحيحة في العمود 'وحدة دراسية' وتم تحويلها إلى NaN، لذا تأكد أن كل سطر في العمود يحتوي على قيم و تكون عبارة عن أرقام.
-
بالنسبة للخطأ الذي قد واجهته، يفضل دائما التحقق من أن أنواع البيانات في الأعمدة تسمح بالعمليات الحسابية، يمكنك استخدام dtype للتحقق من أن الأعمدة التي تشارك في العمليات الحسابية لديها نفس الأنواع. # التحقق من أنواع الأعمدة print(df3.dtypes) # تحويل الأعمدة إلى أنواع البيانات المناسبة إذا كانت لا تزال هناك مشكلة df3['النهائي'] = pd.to_numeric(df3['النهائي'], errors='coerce') df3['وحدة دراسية'] = pd.to_numeric(df3['وحدة دراسية'], errors='coerce') # القيام بالعمليات الحسابية بعد التأكد من صحة أنواع البيانات df3['cc'] = df3['النهائي'] * df3['وحدة دراسية'] # حساب المجموع الإجمالي Total = df3['cc'].sum() # طباعة النتيجة print(Total)
- 10 اجابة
-
- 1
-
-
تأكد من أن العمود لا يحتوي على أي كلمات، اذا تستطيع أرفق الكود مع الملف لأطلع عليه أكثر.
- 10 اجابة
-
- 1
-
-
يمكنك ذلك باستخدام مكتبة pandas في Python لتنفيذ هذه العملية، سأكتب لك كود كمثال لتفهم أكثر: import pandas as pd # قم بتعريف DataFrame الخاص بك data = {'Column1': [1, 2, 3, 4], 'Column2': [5, 6, 7, 8], 'Column3': [9, 10, 11, 12]} df = pd.DataFrame(data) إذا أردت جمع قيم Column1 وتقسيمها على قيم Column2، يمكنك استخدام الكود التالي: # جمع قيم Column1 sum_column1 = df['Column1'].sum() # جمع قيم Column2 sum_column2 = df['Column2'].sum() # تقسيم النتيجة result = sum_column1 / sum_column2 print(result) هذا سيعطيك النتيجة المطلوبة. يمكنك تعديل الأعمدة والبيانات وفقا لاحتياجات DataFrame الخاص بك.
-
الحل صحيح و يعطيك نتيجة x power y، في المثال الخاص بك سيتم طباعة نتيجة 2 مرفوعة الى قوة 5 و النتيجة هي 32. و يوجد طرق أخرى للحل بالشكل التالي: الطريقة الأولى: def num(x, y): result = pow(x, y) print(f"result: {result}") num(2, 5) الطريقة الثانية: def num(x, y): result = x ** y print(f"result: {result}") num(2, 5) جميع هذه الطرق تؤدي إلى نفس النتيجة، وتحسب 2 مرفوعة إلى قوة 5 وتطبع النتيجة 32.
-
مجال علوم الكمبيوتر كبير جدا و بالتأكيد في كل مجال هناك مشاكل، فهمك لطبيعة علوم الكمبيوتر صحيح، حيث تتنوع هذه العلوم بشكل كبير وتشمل تفاصيل دقيقة. ومن خلال توظيفك كمبرمج، يمكنك تحديد نطاق معين أو مجال محدد للعمل عليه، لكن يمكن أن يكون التحدي هو في فهم التفاصيل العميقة في المشاريع وتنفيذها بشكل فعال. أهم شيء أن تحدد أهدافك بوضوح و تحدد المهارات و المجال الذي يثير إهتمامك و الذي تريد أن تستمر فيه، بالنسبة للمشاريع الكبيرة قسمها إلى مهام صغيرة وقابلة للإدارة، هذا يساعدك في التركيز على جزء صغير في كل مرة. لا تحاول فهم كل شيء في وقت واحد. قم بتعلم الأساسيات أولا ومن ثم انتقل إلى المفاهيم المتقدمة تدريجيا، و إذا كان لك زملاء في نفس المجال تعاون معهم للحصول على دعم ومساعدة عند الحاجة. و أهم ما يجب أن تعرف هو أن علوم الكمبيوتر تتطلب صبرا، فلا تحاول تحقيق كل شيء في وقت قصير. استمتع بعملك وابق ملتزما بتطوير نفسك، مع الوقت والتفاني، ستلاحظ تحسنا في مهاراتك وقدرتك على التعامل مع تفاصيل المشاريع بشكل أفضل.
- 2 اجابة
-
- 1
-
-
نعم قم فقط بتحميل الملف الذي ينقص، أكتبه في جوجل و ستجد موافع لتحميله، حمله و أتبع الخطوات التي قلت لك.
-
مرحبا أحمد، أرجو منك طرح المشكلة في الفيديو الذي واجهت فيه هذه المشكلة لنتمكن من مساعدتك بشكل أفضل.
-
يوجد بعض الملفات النظامية التي تنقص في الجهاز الذي نقلت اليه التطبيق، و هو مذكور في الإيرور بإسم api-ms-win-core-path-l1-1-0.dll، لذا حاول تحميله فقط و قم بوضعه داخل ملفات الwindows في مجلد system32 ثم قم بإعادة تشغيل الجهاز و سيشتغل معك بدون مشاكل.
- 3 اجابة
-
- 1
-
-
نعم هذا ما كنت أقصده. في سياق مكتبة face_recognition، يتم تمثيل الوجوه كنقاط، ونستخدم face_distance لحساب مدى التشابه بين وجهين باستناد إلى هذه الميزات، و يمكن أن يكون الناتج هو مقياس لقرب أو بعد الوجهين عن بعضهما البعض.
- 9 اجابة
-
- 1
-
-
يستخدم المعامل rtol لتحديد السماحية النسبية وتعني relative tolerance، و القيمة الإفتراضية لها هي 1e-09 أي 0.000000001،بشرح أبسط لنفرض أنه لدينا القيمتين a و b حيث a=100 و b=103 إذا وضعنا السماحية النسبة 0.02 أي 2% سيكون الناتج False لأن الفارق بين x و y أكبر من 2%، أما إذا غيرناه إلى 0.03 سيكون الناتج True: import math x = 100.0 y = 103.0 result = math.isclose(x, y, rel_tol=0.02) print(result)
-
face_locations و face_encodings هما جزءان من الوظائف التي تستخدم للكشف عن الوجوه في الصور واستخراج معلومات حولها، أهم الفروقات بينهما: face_locations: تستخدم للعثور على مواقع الوجوه في الصورة. ترجع قائمة من أقسام الصورة حيث تظهر الوجوه. النتيجة هي تواجد الوجوه في الصورة بدون تفاصيل إضافية. تساعد هذه الوظيفة في تحديد مواقع الوجوه في الصورة. face_encodings: - تستخدم لاستخراج ميزات الوجه (face encodings) من الصورة. - تعيد قائمة من المتجهات الرقمية التي تمثل الوجوه في الصورة. - تحتاج إلى موقع الوجه (الذي يمكن الحصول عليه باستخدام face_locations) لاستخدام هذه الوظيفة. - تستخدم هذه الميزات لمقارنة الوجوه والتحقق من الهوية. و باستخدام هاتين الوظيفتين معا، يمكنك تحديد موقع الوجوه في الصورة باستخدام face_locations ومن ثم استخراج ميزات الوجه باستخدام face_encodings للقيام بالتحقق من الهوية أو مقارنة الوجوه.
- 9 اجابة
-
- 1
-
-
الخطأ يحدث في السطر: df1['إسم المادة'] = col_A لأنك تقوم بتعيين قيم لعمود 'إسم المادة' بشكل كامل، وبالتالي تحتاج إلى التأكد من أن الطول (عدد الصفوف) للعمود الذي تقوم بتعيينه يتطابق مع عدد الصفوف في df1. لحل هذا، يمكنك تعديل الكود على النحو التالي: df1['إسم المادة'] = col_A[:len(df1)] بهذا التعديل، ستقوم بتعيين القيم فقط للصفوف التي توجد في df1، مما يحل المشكلة التي تواجهك.
- 5 اجابة
-
- 1
-
-
لغات مثل Dart لإطار العمل Flutter وJavaScript لـ React Native و حتى java مصممة خصيصا للعمل على المنصات المحمولة، مما يمنحها أداء أفضل في بعض الحالات مقارنة بـ Python. كما أن لديهم مجتمعات تطوير نشطة وشركات كبيرة تدعمهما، مما يجعلهما خيارات شائعة لتطوير تطبيقات الهواتف المحمولة، Flutter و React Native يحصلان على تحديثات منتظمة ودعم رسمي من قبل Google وFacebook على التوالي، مما يعني استمرارية التطوير وتحسين الأداء. لغة البيثون متعددة الإستعمالات لكن لديها مجالات محددة قوية فيهم أهمها الذكاء الإصطناعي، لذلك فهي تبرز في هذا المجال أفضل.
-
يمكنك القيام بذلك بإستخدام الميثود melt حيث تقوم بإعادة تنسيق ال dataframe الخاصة بك على حسب العمود الذي تريد، و هذا مثال بسيط للكود الذي يوضح ذلك: import pandas as pd # نفترض أن DataFrame الخاص بك يسمى df data = { 'رقم الطالب': ['A001', 'A002'], 'عربي': [50, 60], 'حساب': [73, 80], 'علوم': [50, 60], 'جغرافيا': [55, 70] } df = pd.DataFrame(data) # قم بتحويل الDataFrame melted_df = pd.melt(df, id_vars=['رقم الطالب'], var_name='column', value_name='value') # قم بفرز الDataFrame المحولة بناءً على 'رقم الطالب' melted_df = melted_df.sort_values(by=['رقم الطالب']) # عرض الDataFrame المحولة print(melted_df)
- 2 اجابة
-
- 1
-
-
بالطبع يمكنك استخدام مكتبة pandas في Python لحفظ ملف Excel جديد ولحفظ البيانات في نفس الملف، حيث بعد إنشاء DataFrame جديدة باستخدام بياناتك، يتم حفظها في ملف Excel جديد، ثم يتم قراءة الملف للتحقق من الحفظ الصحيح، وبعد ذلك يتم إضافة بيانات جديدة إلى DataFrame ويتم الدمج بينها وبين البيانات الموجودة في الملف السابق، ثم يتم حفظ النتيجة في نفس الملف. فيما يلي مثال بسيط: import pandas as pd # قم بإنشاء DataFrame جديدة (يمكنك استخدام بياناتك الفعلية) data = {'Column1': [1, 2, 3], 'Column2': ['A', 'B', 'C']} df = pd.DataFrame(data) # اسم الملف الجديد file_path = 'مسار_الملف/اسم_الملف.xlsx' # حفظ DataFrame في ملف Excel جديد df.to_excel(file_path, index=False) # إعادة قراءة الملف للتحقق من الحفظ الصحيح df_read = pd.read_excel(file_path) # قم بإضافة بيانات جديدة إلى DataFrame new_data = {'Column1': [4, 5], 'Column2': ['D', 'E']} df_new = pd.DataFrame(new_data) # الدمج بين DataFrame الحالية والبيانات الجديدة df_combined = pd.concat([df_read, df_new], ignore_index=True) # حفظ البيانات المدموجة في نفس الملف df_combined.to_excel(file_path, index=False) print("تم حفظ البيانات بنجاح.") يرجى تغيير مسار_الملف/اسم_الملف.xlsx إلى المسار الذي تريد حفظ الملف فيه،
-
إذا كنت تستخدم مكتبة tkinter يمكنك استخدام الدالة os.path.basename() لاستخراج اسم الملف من المسار الكامل الذي تم اختياره، فيما يلي مثال بسيط: import tkinter as tk from tkinter import filedialog import os def open_file_dialog(): file_path = filedialog.askopenfilename() if file_path: file_name = os.path.basename(file_path) print("اسم الملف:", file_name) # إعداد النافذة الرئيسية root = tk.Tk() root.withdraw() # لإخفاء النافذة الرئيسية إذا لم تكن مطلوبة # زر لفتح مربع حوار اختيار الملف button = tk.Button(root, text="اختيار ملف", command=open_file_dialog) button.pack() # تشغيل البرنامج root.mainloop() عند تشغيل هذا البرنامج، سيتم فتح مربع حوار لاختيار ملف، وبعد اختيار الملف سيتم طباعة اسم الملف.
- 2 اجابة
-
- 1
-