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

Amer Abdallah

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

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

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

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

    1

كل منشورات العضو Amer Abdallah

  1. في نموذج QuerySets في جانغو Django، أرى أن هناك __gt و __lt لمقارنة القيم، لكن هل هناك __ne أو! = (not equals)؟ أريد تصفية النتائج باستخدام شرط لا يساوي. على سبيل المثال: Model: bool x; int y; أريد أن أقوم بـ : results = Model.objects.exclude(x=True, y!=10) لكن هذه الطريقة لم تفلح، لذلك أستخدم الكود التالي: results = Model.objects.exclude(x=True, y__lt=10).exclude(x=True, y__gt=10) لكن أعتقد أن الكود السابق ليس عملي ويسبب بطيء أثناء التنفيذ، لذلك هل توجد طريقة لعمل شرط "لا يساوي" في جانغو Django؟
  2. عندما نضيف حقل قاعدة بيانات في جانغو Django، نكتب بشكل عام: models.CharField(max_length=255, null=True, blank=True) لكن لم أفهم ما الفرق بين الحالات التالية: كتابة null=True فقطك، أو كتابة blank=True فقط، أو كتابة null=True و blank=True معًا نحن نستعمل نفس الشيء من حقول مثل ForeignKey و ManyToManyField و DateTimeField، ما هي فوائد وعيوب كل طريقة من الطرق الثلاث السابقة؟ وهل يوجد فرق من الأساس؟
  3. أنا أقوم بإنشاء تطبيق ويب مع جانغو Django. الأسباب التي جعلتني اخترت جانغو Django هي أنه مجاني ومفتوح المصدر وأني سأستخدم لغة Python حيث أنها أسهل وأسرع في الكتابة عن بقية اللغات، لكن لدي بعض الأسئلة: ما هي أكبر المواقع التي تم بناؤه بإستخدام جانغو Django؟ هل يمكن لـ جانغو Django أن يتحمل عدد زوار 100,000 يوميًا مع تصفح ساعتين لكل زائر (في المتوسط)؟ وهل يمكن عمل موقع مثل Stack Overflow بإستخدام جانغو Django؟
  4. أثناء قرائتي لأمثلة لمكتبة Numpy وجود الكود التالي: >>> a = np.zeros((9, 3)) # A transpose make the array non-contiguous >>> b = a.T # Taking a view makes it possible to modify the shape without modifying the # initial object. >>> c = b.view() >>> c.shape = (27) AttributeError: Incompatible shape for in-place modification. Use `.reshape()` to make a copy with the desired shape. لكني لم أفهم ما الذي تعنيه مصفوفة non-contiguous؟ وما الفرق بينها وبين المصفوفات من نوع contiguous؟ ولماذا لا يمكن إستخدام الخاصية shape مع مصفوفات non-contiguous ويظهر الخطأ السابق؟
  5. لدي صورة RGB. أريد تحويله إلى مصفوفة Numpy. لذلك قمت بكتابة الكود التالي: img = cv.LoadImage("image.tiff") arr = np.asarray(img) لكن هذا الكود يقوم بصنع مصفوفة بلا شكل shape. وإعتقد أنه كائن من نوع iplimage. كيف يمكنني تحويل هذه الصورة إلى مصفوفة Numpy لكي أقوم بإجراء بعض العمليات عليها؟
  6. أثناء تعلمي عن numpy ، صادفت الدالة numpy.histogram() في المثال التالي: >>> import numpy as np >>> np.histogram([1, 2, 3], bins=[0, 1, 2, 3]) (array([0, 1, 2], dtype=int64), array([0, 1, 2, 3])) أريد أن أعرف ماذا تفعل هذه الدالة وكيف تعمل؟ في التوثيق الخاص بـ Numpy يتم ذكر bins ولم أفهم أيضًا ما هي؟
  7. لنفترض أن لدي مصفوفة x * z . أريد أن أمرر كل عمود من هذه المصفوفة إلى دالة لأداء بعض العمليات على العمود بأكمله. كيف يمكنني المرور على أعمدة المصفوفة من خلال حلقة for؟ أي ما أريد فعله كالتالي: import numpy as np arr = np.array([[21. , 12.3, 33. ], [ 9. , 1.4, 53.5], [23. , 1. , 71. ]]) for col in arr: fun(col) # يتم تمرير كل عمود إلى الدالة
  8. لدي مصفوفة Numpy ثنائية الأبعاد. أعرف كيفية الحصول على القيم القصوى عبر axes: >>> import numpy as np >>> arr = np.array([[1, 2, 7],[4,3,1]]) >>> np.amax(arr,axis=0) array([4, 3, 7]) >>> كيف يمكنني الحصول على الفهرس الخاص بكل عنصر من المصفوفة الناتجة الأخيرة؟ أود أن تكون مصفوفة الإخراج ([1،1،0]) بدلاً من [4, 3, 7].
  9. لدي مصفوفة Numpy متعددة الأبعاد (5,3,2) وأريد أن أقوم بحفظ هذه المصفوفة في ملف نص، بحيث يمكنني إستخدامها لاحقًا. لذلك جربت الدالة numpy.savetxt. الغريب أنه يعطي الخطأ التالي: TypeError: float argument required, not numpy.ndarray أفترض أن هذا الدالة لا تعمل مع المصفوفات متعددة الأبعاد، كيف يمكني حفظ مصفوفة Numpy في ملف نص؟
  10. أحاول أن أقوم بعمل دالة تتأكد من أن متغير معين عبارة عن مصفوفة Numpy أم None لذلك قمت بعمل الدالة التالية: >>> import numpy as np >>> def check(x): ... if not x: print(True) ... >>> arr = None >>> check(arr) ... True >>> arr = np.array([1,2]) >>> check(arr) ... Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() >>> لم أفهم سبب هذا الخطأ، كيف يمكنني التأكد مما إذا كان المتغير arr عبارة عن None أم مصفوفة Numpy عادية؟
  11. لدي مصفوفة Numpy من نوع int32، كيف يمكنني تحويلها إلى float32 في مكانها (أي بدون نسخها إلى متغير جديد)؟ أود أن أفعل شيء كالكود التالي: arr = arr.astype(numpy.float32) بدون نسخ المصفوفة لأنها كبيرة للغاية. كيف يمكن القيام بذلك في Numpy؟
  12. أنا أبحث عن أسرع طريقة للتحقق من وجود NaN (np.nan) في مصفوفة NumPy ، لكن إستعمال دالة isnan غير وارد ، لأنها تنشئ مصفوفة منطقية boolean من الشكل arr.shape ، والتي من المحتمل أن تكون عملاقة (حسب حجم المصفوفة arr). لقد جربت np.nan كالتالي: np.nan in arr لكن يبدو أن هذه الطريقة لا تعمل لأن: np.nan != np.nan # True لا أفهم لماذا الشرط السابق يتحقق True، لكن يبدو أن إستعمال np.nan غير وارد بسبب الشرط السابق. هل هناك طريقة سريعة وفعالة للقيام بذلك في Numpy؟
  13. لدي مصفوفتين كالتالي: >>> import numpy as np >>> x = np.matrix([[1, 2], [5, 6]]) >>> y = np.matrix([[3, 4], [7, 8]]) وأريد حساب ناتج ضرب هادامار Hadamard Product (يعرف أيضًا بـ element-wise product)، والذي يتم عبر ضرب المصفوفتين بالشكل التالي: [ [1*3, 2*4], [5*7, 6*8] ] # أو ما يساوي [ [3, 8], [35, 48] ] حاولت أن أستعمل دالة dot و ضرب المصفوفتين مباشرة: print(np.dot(x, y)) print(x * y) ولكن كلا الطريقتين أخرجت النتيجة التالي: [[17 20] [57 68]] وهو حاصل ضرب المصفوفة، وليس ناتج ضرب هادامار. كيف يمكنني الحصول على element-wise product (المعروف أيضًا باسم Hadamard product) باستخدام مكتبة Numpy؟
  14. لنفترض أن لدي مصفوفة بسيطة كالتالي: >>> import numpy as np >>> lst = [np.array([1, 2, 3]), np.array([[4, 5, 6],[7, 8, 9]])] ما أحاول فعله هو تحويل القائمة السابقة إلى مصفوفة Numpy واحدة كالتالي: array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) أنا أقوم بحلها عن طريق التكرار على vstack في الوقت الحالي ولكنها يبدو أن هذه العملية بطيئة حقًا خصوصًا عند إستعمال قائمة كبيرة. ما هي أفضل طريقة فعالة للقيام بعملية التحويل هذه؟
  15. لقد لاحظت مؤخرًا أن معامل ضرب المصفوفة الجديد (@) يتصرف أحيانًا بشكل مختلف عن معامل numpy.dot . على سبيل المثال، للمصفوفات ثلاثية الأبعاد: import numpy as np a = np.random.rand(2,3,3) b = np.random.rand(2,3,3) c = a @ b # Python 3.5+ d = np.dot(a, b) يُرجع المعامل @ شكل المصفوفة كالتالي: >>> c.shape (2, 3, 3) بينما الدالة np.dot() تعيد شكل مصفوفة كالتالي: >>> d.shape (2, 3, 2, 3) ما الفرق بين numpy.dot وضرب المصفوفة باستخدام المعامل @؟ وكيف يمكنني إعادة إنتاج نفس النتيجة باستخدام numpy.dot؟
  16. لماذا يعطي Numpy هذه النتيجة: >>> import numpy as np >>> arr = np.array([5.51,0.0,8.7,5.4]) >>> arr.argsort() # Output: [1, 3, 0, 2] كنت أتوقع أن تكون النتيجة كالتالي: [3, 1, 2, 0] لكن من الواضح أن هناك شيء مازلت أجهله بشأن هذه الدالة، هل يمكن لأحد أن يشرح لي فائدة argsort وكيفية عملها؟
  17. كيفية تحويل مصفوفة من النصوص: ["1.1", "2.2", "3.3"] إلى مصفوفة من نوع float: [1.1, 2.2, 3.2] في مكتبة Numpy؟
  18. في مشروع يستخدم SciPy و NumPy، هل يجب أن أستخدم scipy.pi أو numpy.pi أو math.pi؟ هل يوجد فرق في قيم pi هنا، وهل توفر أي مكتبة قيمة أدق عن الأخرى؟ وإن كانت جميع القيم متساوية في المكتبات الثلاثة، إذًا لماذا قيمة pi موجودة في كل هذه المكتبات؟
  19. هل هناك طريقة بسيطة لفهرسة جميع عناصر المصفوفة باستثناء فهرس معين؟ فبفرض أني أريد أن أقوم بإستخدام كل عناصر مصفوفة معينة بإستثناء العنصر رقم 3 مثلُا، كيف يمكنني أن أقوم بذلك؟ mylist[3] # يقوم بإرجاع العنصر الموجود في الفهرس 3 # لكن هل يوجد شيء كاتاليب milist[~3] # يقوم بإرجاع كل المصفوفة ما العنصر الموجود في الفهرس 3 هل توجد طريقة في مكتبة Numpy تقوم بهذا الأمر أم علي أن أقوم بعمل مصفوفة جديدة تحتوي على كل العناصر ما عدا عنصر
  20. أرغب في نسخ مصفوفة ثنائية الأبعاد صغيرة الحجم إلى بُعد ثالث. على سبيل المثال: import numpy as np arr = np.array([[1,2],[1,2]]) تحويلها إلى مصفوفة ثلاثية الأبعاد مع نسخ المصفوفة في البعد الجديد. بفرض أنني أريد نسخها ثلاث مرات، يجب أن يكون الناتج كالتالي: new_arr = np.array([[[1,2],[1,2]],[[1,2],[1,2]],[[1,2],[1,2]]]) # new_arr.shape = (3, 2, 2) كيف يمكنني أن أقوم بهذا الأمر؟
  21. لدي مصفوفة عددية تحتوي على: arr = np.array([1, 2, 3]) أريد إنشاء مصفوفة تحتوي على: [1, 2, 3, 1] وهذا يعني أنني أريد إضافة العنصر الأول إلى نهاية المصفوفة. لقد جربت الحل التالي: np.concatenate((arr, arr[0])) لكن ظهر لي الخطأ التالي: ValueError: arrays must have same number of dimensions لا أفهم لماذا ظهر هذا الخطأ، كلا المصفوفتان أحادية البعد 1d.
  22. لم أجد في توثيق np.sort. لنفترض أن لدي مصفوفة رقمية عشوائية تحتوي على أعداد صحيحة، كالتالي على سبيل المثال: >>> arr = np.random.randint(1,10, 10) >>> arr array([2, 4, 7, 4, 2, 2, 7, 6, 4, 4]) إذا قمت بترتيبها، فسأحصل على ترتيب تصاعدي افتراضيًا، كالتالي: >>> np.sort(arr) array([2, 2, 2, 4, 4, 4, 4, 6, 7, 7]) لكني أريد أن يتم ترتيبها تنازليًا. أعلم أنه يمكنني القيام بما يلي: reverse_order = np.sort(arr)[::-1] ولكن هل هذا الحل الأخير فعال؟ ألا تقوم بإنشاء نسخة بترتيب تصاعدي، ثم تقوم بعكس هذه النسخة للحصول على النتيجة بترتيب معكوس؟ إذا كان هذا هو الحال بالفعل، فهل هناك بديل فعال؟ لا يبدو أن np.sort يقبل معاملات لتغيير علامة المقارنات في عملية الترتيب للحصول على الأشياء بترتيب عكسي.
  23. لنفترض أن لدي مصفوفة NumPy كالتالي: a = np.array([1,2,3,1,2,1,1,1,3,2,2,1]) كيف يمكنني العثور على الرقم الأكثر تكرارا في هذه المصفوفة؟
  24. لدي عينة من البيانات التي أود حساب مجال الثقة لها Confidence Interval، بافتراض التوزيع الطبيعي. لقد وجدت حزمتي numpy و scipy وقمت بتثبيتها واستخدمت numpy لإرجاع الانحراف المتوسط mean deviation والمعياري standard deviation من خلال الكود التالي: numpy.mean(data) لكن لا أعرف كيفية الحصول على مجال الثقة Confidence Interval للبيانات التي لدي. كيف أستخدم مكتبة Numpy و scipy للحصول على مجال الثقة Confidence Interval؟
  25. لدي مصفوفتان numpy الأولى: x هي (m ، n) والثانية: y متجه (n ، 1) عندما أحاول إتمام عملية الضرب كالتالي: x*y أحصل على الخطأ: ValueError: operands could not be broadcast together with shapes (97,2) (2,1) عندما يكون حجم المصفوفة x هو (7,2) وحجم المصفوفة y هو (2,1) فمن المفترض أن تتم عملية الضرب بدون مشكلة ويكون الناتج عبارة عن مصفوفة حجمها (7,1) لماذا يظهر الخطأ السابق؟ وكيف أقوم بعملية الضرب هنا؟
×
×
  • أضف...