Fahmy Mostafa

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

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

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

  • Days Won

    1

السُّمعة بالموقع

90 Excellent

1 متابع

  1. لدي إطار البيانات التالي: >>> from pandas import * >>> df = DataFrame({'foo':['a','b','c'], 'bar':[1, 2, 3]}) >>> df foo bar 0 a 1 1 b 2 2 c 3 والآن أريد تحويله إلى التالي: bar 0 1 is a 1 2 is b 2 3 is c حاولت أن أقوم بذلك من خلال Pands كالتالي: df['foo'] = '%s is %s' % (df['bar'], df['foo']) لكن الكود السابق يسبب لي مشكلة ويخرج متيجة مختلفة عما أريد: >>> df foo bar 0 0 1\n1 2\n2 3\nName: bar, dtype: int6... 1 1 0 1\n1 2\n2 3\nName: bar, dtype: int6... 2 2 0 1\n1 2\n2 3\nName: bar, dtype: int6... 3 هل يمكن أن أستخدم Numpy لعمل هذا التغير؟ وكيف أقوم بذلك؟
  2. بعد إنشاء مصفوفة Numpy وحفظها كـ Django context variable، أتلقى الخطأ التالي عند تحميل صفحة الويب: array([ 0, 239, 479, 717, 952, 1192, 1432, 1667], dtype=int64) is not JSON serializable ماذا الذي يعنيه هذا الخطأ؟ وهل يجب أن أقوم بتغير نوع المصفوفة من خلال مكتبة json حتى أتمكن من التعامل مع هذا الكائن؟
  3. أواجه مشكلة في عمل allocate مصفوفات ضخمة في numpy على Ubuntu 18 بينما لا أواجه نفس المشكلة على MacOS. أحاول عمل allocate memory لمصفوفة عددية ذات شكل (156816 ، 36 ، 53806) من خلال الكود التالي: >>> import numpy as np >>> np.zeros((156816, 36, 53806), dtype='uint8') أحصل على الخطأ التالي على Ubuntu : numpy.core._exceptions.MemoryError: Unable to allocate array with shape (156816, 36, 53806) and data type uint8 بينما على MacOS أحصل على التالي: >>> import numpy as np >>> np.zeros((156816, 36, 53806), dtype='uint8') array([[[0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0]], [[0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0]], [[0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0]], ..., [[0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0]], [[0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0]], [[0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0]]], dtype=uint8) هنا الإصدارات التي لدي على كل نظام تشغيل: Ubuntu os -> ubuntu mate 18 python -> 3.6.8 numpy -> 1.17.0 mac os -> 10.14.6 python -> 3.6.4 numpy -> 1.17.0 حاولت أيضًا أن أقوم بتنفيذ الأكواد على Google Colab ولم أنجح أيضًا، ما السبب في هذا الأمر؟
  4. كيفية تحويل tensor إلى مصفوفة numpy عند استخدام Tensorflow مع Python Bindings ؟ أستعمل TensorFlow 2.x وبايثون 3.8
  5. يبدو أنه لا توجد دالة تقوم ببساطة بحساب المتوسط المتحرك moving average فيnumpy / scipy ، هل هذا الأمر صحيح؟ وكيف أقوم بحسابه عبر Numpy؟
  6. أقوم بقراءة عمودين من ملف CSV باستخدام pandas عبر readcsv() ، ثم أقوم بتخزين القيم في قاموس dictionary، تحتوي الأعمدة على سلاسل من الأرقام والحروف. توجد حالات تكون فيها الخلية فارغة. حسب ما أعتقد يجب أن تكون قيمة الخلايا الفارغة في القاموس None ولكن بدلًا من ذلك أجد أنها NaN. أليست كلمة None أفضل من ناحية وصف أن هذه الخلية فارغة عوضًا عن NaN التي تعبر عن Not a Number (حسب ما أعتقد)؟ ما الفرق بين None و NaN؟
  7. أنا أجد صعوبة في فهم كيفية عمل einsum بالضبط في مكتبة numpy. لقد ألقيت نظرة على توثيق المكتبة وبعض الأمثلة أيضًا، لكن يبدو أنها لا تقدم شرح واضح هنا مثال بسيط: x = np.einsum("ij,jk->ki", y, z) كنت أعتقد أنها سوف تكون x^T * y ولكني لست متأكد من هذا الأمر هل يمكن لأي شخص أن يطلعني على ما يحدث بالضبط هنا (وبشكل عام عند استخدام einsum)؟
  8. تحويل قائمة بايثون إلى مصفوفة باستخدام مكتبة numpy يجعل من المصفوفة المولدة من نوع object كالتالي: v = [[1], [1, 2]] np.array(v) >>> array([[1], [1, 2]], dtype=object) وعندما أحاول أن أجبرها على تعيين نوع معين كالتالي: np.array(v, dtype=np.int32) يظهر لي الخطأ التالي: ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part. ما هي الطريقة التي تمكني من تحويل المصفوفة إلى نوع int32 بدون مشكلة؟
  9. لدي كود كالتالي: import pandas as pd import numpy as np dff = pd.DataFrame(np.random.randn(1,2),columns=list('AB')) واحصل على النتيجة التالية: A B 0 -1.284531 1.923908 وعندما أقوم بكتابة : dff.mean(axis=1) أحصل على النتيجة التالية: 0 0.319689 dtype: float64 كنت أعتقد أن axis=1 تشير إلى الأعمدة، لذا ما الذي تعنيه axis عند إستعمال مصفوفة numpy مع pandas؟
  10. أريد أن أحصل على المسار الكامل لسكريبت بايثون الحالي، لنفترض أني قمت بتشغيل ملف بايثون من خلال سطر الأوامر من مجلد مختلف عن الذي يحتوي على ملف بايثون كالتالي على سبيل المثال: C:\Users\fahmy> python D:\dir\pythonScript.py لاحظ أن مجلد العمل الحالي Current Working Directory في سطر الأوامر هو C:\Users\fahmy بينما مسار ملف بايثون هو D:\dir\pythonScript.py ما أريده هو الحصول على مسار ملف بايثون الأخير هذا برمجيًا، كيف يمكنني أن أقوم بذلك بغض النظر عن مكان وجوده؟
  11. أريد استخدام مدخلات من المستخدم كنمط regex للبحث في بعض النصوص. الكود الخاص بي يعمل بدون مشكلة، لكن كيف يمكنني التعامل مع الحالات التي يضع فيها المستخدم أحرفًا لها معنى في regex؟ على سبيل المثال إن قام المستخدم بإدخال نص كالتالي: (A) في هذه الحالة سوف يتم التعامل مع هذا النص على أنه مجموعة group في regex كيف يمكنني أن أقوم بإستخدام مدخلات مختلفة كالمثال السابق في regex بدون مشكلة؟
  12. هل توجد دالة تقوم بالتحقق مما إذا كائن كائن ما قابل للتكرار iterable أم لا، شيء مثل الكود التالي: isiterable(myObj) # True or False
  13. عندما أقوم بتعيين متغير بيئة وأريد الوصول إليه في تطبيق Python الخاص بي. كيف أحصل على قيمتها في كل من لينكس وويندوز؟ وكيف يمكنني التحقق من وجود متغير بيئة معين؟
  14. أواجه مشكلات في فهم كيفية إرسال مرفق بالبريد الإلكتروني attachment باستخدام Python. لقد نجحت في إرسال رسائل بريد إلكتروني بسيطة باستخدام smtplib. هل يمكن لشخص ما أن يشرح كيفية إرسال مرفق في رسالة بريد إلكتروني. وجدت بعض الشروحات الأخرى على الإنترنت ولكن لم أفهم بعد كيف يتم الأمر في بايثون. وهل يوجد حد أقصى لحجم الملفات المرفقة في البريد الإلكتروني؟
  15. لدي قائمة بسيطة كالتالي: x = [0,1,2,4,8,16,32,64,128,512,1024] كما تلاحظ لا يوجد أي عناصر مكررة في القائمة، وقررت أن أقوم بتحويلها إلى set ولكن عندما قمت بذلك من خلال دالة set وجدت أن ترتيب العناصر قد اختلف وكانت النتيجة كالتالي: >>> set(x) {0, 1, 2, 32, 4, 64, 128, 512, 8, 1024, 16} كيف يمكنني تحويل القائمة إلى set بدون أن أفقد ترتيب العناصر في القائمة؟