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

Fahmy Mostafa

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

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

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

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

    1

كل منشورات العضو Fahmy Mostafa

  1. لدي مصفوفة تحتوي على عدد من الأعمدة والصفوف كالتالي: array([ [1, 1, 1, 0, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [1, 1, 1, 0, 0, 0], [0, 0, 1, 1,0, 0] ]) لاحظ أن أول صفين فقط يتم تكرارهما أكثر من مرة كيف يمكنني الحصول على الصفوف الفريدة بدون هاته الصفوف المكررة، لتكون النتيجة كالتالي: array([ [1, 1, 1, 0, 0, 0], [0, 0, 1, 1, 0, 0] ]) أريد أن أقوم بهذه العملية في مكتبة numpy لتكون سريعة بما فيه الكفاية
  2. لدي مصفوفتين كالتالي: a = numpy.array([0,1, 2]) b = numpy.array([3, 4, 5]) كيف يمكنني الحصول على الناتج الديكارتي cartesian product من هذه المصفوفات، لتكون النتيجة كالتالي: result = array([0, 3], [0, 4], [0, 5], [1, 3], [1, 4], [1, 5], [2, 3], [2, 4], [2, 5]) حاولت أن استخدم itertools.product ثم أقوم بتحويل القائمة الناتجة من العملية إلى مصفوفة numpy لكن يبدو أن هذه العملية بطيئة بعض الشيء خصوصًا عند تنفيذها داخل حلقة for كيف يمكن تنفيذ هذا الأمر بإستخدام مكتبة Numpy؟
  3. لدي إطار بيانات dataframe يحتوي على بعض فصائل الدم وبعض المجموعات كالتالي: Type Set 1 A A 2 B B 3 O B 4 B A أريد أن يتم إضافة عمود جديد (بنفس عدد الصفوف في باقي الأعمدة) بناء على قيم العمود Set، فعلى سبيل المثال يتم إضافة القيمة "Group 1" في حالة كانت القيم A، وقيمة "Group 2" في حالة B كيف يمكنني القيام بذلك؟
  4. عندما أقوم بطباعة أي صنف في بايثون أحصل على نتيجة مشابهة للتالي: <__main__.Foo instance at 0x7fa2b29d> هل توجد طريقة لعمل مثل هذه النتيجة عند طباعة صنف قمت بإنشائه بنفسي، بحيث يتم طباعة هذه النتيجة عند إستخدام دالة print لطباعة instance من الصنف
  5. قرأت منذ فترة أنه يمكن تشغيل كود مكتوب بلغة C/C++ من داخل ملف بايثون وذلك لأن لغة بايثون تم تصميمها بإستخدام لغة C. هل يمكن القيام بهذا الأمر؟ وكيف يتم تطبيقه عمليًا؟ وهل هناك ملاحظات أو أخطاء قد تحدث بسبب هذه الطريقة في التطبيق (استخدام أكثر من لغة في برنامج واحد)؟
  6. عندما كنت أقرأ بعض المقالات حول لغة بايثون وجدت أن المصطلح type hints يستعمل بكثرة بالرغم أنه لم يتم التطرق إلى معناه، كما تم ذكر أنه يجب استعماله بحرص. هل يمكن لأحد أن يشرح لي ما هو type hints وما فائدته؟ وهل من الخطر إستعماله؟
  7. هل من الممكن تقسيم سلسلة إلى عدد معين من الحروف؟ على سبيل المثال تقسيم النص التالي: '0123456789' لأحصل على التالي: ['01', '12', '23', '34', ….] حاولت أن أستعمل دالة split لكن لا يوجد رقم مكرر لكي أقوم بتقسيم النص بناءً عليه
  8. قمت من فترة قصيرة بعمل سكربت لتحميل الملفات (أشبه بمدير تحميل الملفات)، لكن المشكلة هي أنني لا يمكنني أن أقوم بتحميل الملفات الكبيرة من الإنترنت، فعلى سبيل المثال أريد تحميل نسخة من نظام التشغيل Ubuntu من خلال هذا البرنامج، كيف أقوم بتحميل ملف بحجم أكبر من 1.5 جيجابايت؟ هل يمكن إستخدام طريقة chunks لعمل ذلك؟ وهل يمكنني عمل شريط تحميل لعرض نسبة اكتمال التحميل؟
  9. أحاول القيام ببرنامج متعدد المهام من خلال pool.map في مكتبة multiprocessing لكن المشكلة هي أنه يمكنني تمرير مدخل واحد إلى الدالة التي أريد، كالتالي: def test(x, y): print(x + y) if __name__ == '__main__': pool = multiprocessing.Pool(processes=2) pool.map(test, range(1000)) # يجب أن يتم تمرير رقمين للدالة وليس رقم واحد pool.close() pool.join() كيف أقوم بتمرير أكثر من متغير إلى دالة test؟
  10. عندما أقوم بقراءة ملف نصي باستخدام بايثون، لا يمكنني معرفة الترميز المستخدم في كتابة الملف وبالتالي قد تظهر رموز غريبة عند عرض النص المستخرج من الملف، هل توجد طريقة لتحديد ترميز ملف معين عند قراءته؟ ونفس الأمر بالنسبة لسحب البيانات من صفحات HTML بإستخدام مكتبة Beautiful Soup حيث أقوم بإستعمال ترميز utf-8 لكن في بعض الأحيان تظهر رموز غريبة بسبب إستعمال الصفحة لترميز مختلف. كيف أقوم بمعرفة ترميز صفحات الويب HTML؟
  11. عندما أقوم بإستدعاء دالة وتقوم هذه الدالة بالتعديل على المدخلات لإستخدامها مرة أخرى، لا يتم تطبيق هذه التغيرات على المتغيرات نفسها، فعلى سبيل المثال: def f(x, y): x = 1 y.append(3) print('In f():', x, y) x = 0 y = [0,1,2] print('Before:', x, y) f(x, y) print('After: ', x, y) تكون النتيجة كالتالي: Before: 0 [0, 1, 2] In f(): 1 [0, 1, 2, 3] After: 0 [0, 1, 2, 3] لماذا لم يتم تطبيق هذه التغيرات على المتغيرات المدخلة إلى الدالة f؟
  12. هل يوجد فرق بين إستعمال import module أو from module import؟ أليس كلا الطريقتين يقومان بتحميل الدوال المستخدمة فقط وليس كل المكتبة؟ أحيانًا أستعمل الطريقة الأولى وأحيانًأ أخرى استعمل الطريقة الثانية، ومع ذلك لم ألاحظ أي إختلاف بينهما (بغض النظر عن كيفية استعمال الدالة المستدعاة بعد ذلك) متى أستعمل كلًا منهما؟
  13. أحاول أن أقوم بعمل دالة بديلة لدالة random.choice وتقبل الدالة قائمة العناصر وقائمة الاحتمالات كالتالي: lst= [1, 2, 3, 4] choice(lst, [0.2, 0.2, 0.4, 0.2]) وبذلك يمكن أن يكون لكل عنصر فرصة (احتمالية) مختلفة ليتم اختياره. كيف أقوم بعمل مثل هذه الدالة في بايثون؟ هل توجد دالة جاهزة تقوم بهذا الأمر؟
  14. ما الفرق بين استعمال دالة copy من مكتبة copy كالتالي: import copy a = "deepak" b = {1: 10, 2: 20, 3: 30} a1 = copy.copy(a) b1 = copy.copy(b) print(id(a) == id(a1)) print(id(b) == id(b1)) والتي من خلالها نحصل على النتيجة التالية: True False وعندما استعمل دالة deepcopy من نفس المكتبة أحصل على نفس النتيجة import copy a = "deepak" b = {1: 10, 2: 20, 3: 30} a1 = copy.deepcopy(a) b1 = copy.deepcopy(b) print(id(a) == id(a1)) print(id(b) == id(b1)) والتي من خلالها نحصل على النتيجة التالية: True False ما الفرق بين الدالتين ومتى استعمل كلًا منهما؟
  15. لدي نص كالتالي: string = "01234567890123456789" كيف يمكنني استخراج سلسلة من الأرقام، ويكون طول كل سلسلة 10 أرقام فقط، أي تكون النتيجة كالتالي: [123456789, 1234567890, 2345678901, 3456789012, 4567890123 ...]
  16. ما الغرض من إمكانية إستعمال جملة else مع جملة for كما في الكود التالي: for i in range(10): print(i) if i == 9: print("Found 9") break; else: print("Completed successfully") لماذا لا يتم كتابة دالة print الأخيرة بعد حلقة for بشكل مباشر فقط كالتالي: for i in range(10): print(i) if i == 9: print("Found 9") break; print("Completed successfully") ألن يكون من الأسهل فعل ذلك؟ أم هل يوجد فرق بين الطريقة الأولى والثانية؟
×
×
  • أضف...