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

Amer Abdallah

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

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

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

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

    1

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

  1. أريد تحويل مصفوفة أحادية الأبعاد إلى مصفوفة ثنائية الأبعاد عن طريق تحديد عدد الأعمدة في المصفوفة ثنائية الأبعاد. شيء من شأنه أن يعمل مثل هذا: >>> import numpy as np >>> A = np.array([1,2,3,4,5,6]) >>> B = vec2matrix(A, cols=2) # Pseudocode >>> B array([[1, 2], [3, 4], [5, 6]]) هل توجد دالة أو طريقة في Numpy تقوم بهذا الأمر؟
  2. لنفترض أن لدي مصفوفة كالتالي: import numpy as np arr = np.array([[1,2,3], [4,5,6]]) أريد تحويل هذه المصفوفة إلى مصفوفة ذات بُعد واحد 1D، لذلك حاولت القيام بالتالي: b = np.reshape(arr, (1,np.product(arr.shape))) ومع ذلك كانت النتيجة مختلف عما أريد، النتيجة هي: array([[1, 2, 3, 4, 5, 6]]) بينما من المفترض أن تكون كالتالي: array([1, 2, 3, 4, 5, 6]) يمكنني أخذ العنصر الأول من هذه المصفوفة لتحويله يدويًا إلى مصفوفة 1D، ولكن هذا الأمر يتطلب معرفة أبعاد المصفوفة الأصلية لعمل ذلك. كيف يمكن تحويل أي مصفوفة إلى مصفوفة أحادية الأبعاد في Numpy؟
  3. هل هناك طريقة سريعة "للتسوية الفرعية sub-flatten" أو تسطيح بعض الأبعاد فقط في مصفوفة صغيرة؟ على سبيل المثال، إن كان لدي مصفوفة أبعادها (50 ،100 ،25)، فإن أبعاد المصفوفة الناتجة ستكون (5000، 25) أي تم ضرب بعدين معًأ (100 * 50) = 5000 كيف يمكن القيام بذلك في Numpy؟
  4. تحتوي مكتبة numpy على ثلاث دوال مختلفة يبدو أنها يمكن استخدامها لنفس الأشياء - باستثناء أنه لا يمكن استخدام numpy.maximum إلا من حيث العناصر ، بينما يمكن استخدام numpy.max و numpy.amax على محاور معينة (صفوف أو أعمدة) أو جميع العناصر . لماذا يوجد أكثر من دالة غير numpy.max؟ هل هناك إختلاف في النتيجة أو الأداء؟ ونفس الشيء لدوال مشابهة، مثل min و amin و minimum
  5. لدي قائمة بايثون متداخلة كالتالي: lst = [ [2.74, 462, 2366.64, 887558.86, 0.81], [8.55, 17, 1422.3, 3212.0, 0.97], [1.02, 768, 6004865.3, 1960.98, 1.21], [2.4, 2406, 3263822121.3, 1087.9, 1.93], [0.5, 454, 44555062, 155062.72, 0.41], [4.5, 106, 168918, 741272.74, 3.25], [5.7, 787, 3011595.6, 21989471.31, 2.18], [6.3, 117, 12511.4, 1291.0, 1.56], [5.51, 117, 47674230.76, 7181.0, 1.43], [0.85, 771, 1631.96, 2184.08, 0.64] ] عندما أقوم بتحويل القائمة إلى مصفوفة Numpy كالتالي: np.array(lst) أحصل على هذه النتيجة: array([[2.74000000e+00, 4.62000000e+02, 2.36664000e+03, 8.87558860e+05, 8.10000000e-01], [8.55000000e+00, 1.70000000e+01, 1.42230000e+03, 3.21200000e+03, 9.70000000e-01], [1.02000000e+00, 7.68000000e+02, 6.00486530e+06, 1.96098000e+03, 1.21000000e+00], [2.40000000e+00, 2.40600000e+03, 3.26382212e+09, 1.08790000e+03, 1.93000000e+00], [5.00000000e-01, 4.54000000e+02, 4.45550620e+07, 1.55062720e+05, 4.10000000e-01], [4.50000000e+00, 1.06000000e+02, 1.68918000e+05, 7.41272740e+05, 3.25000000e+00], [5.70000000e+00, 7.87000000e+02, 3.01159560e+06, 2.19894713e+07, 2.18000000e+00], [6.30000000e+00, 1.17000000e+02, 1.25114000e+04, 1.29100000e+03, 1.56000000e+00], [5.51000000e+00, 1.17000000e+02, 4.76742308e+07, 7.18100000e+03, 1.43000000e+00], [8.50000000e-01, 7.71000000e+02, 1.63196000e+03, 2.18408000e+03, 6.40000000e-01]]) لا أعرف لمذا يتم تغيير شكل الأرقام إلى شكل علمي للغاية، بالرغم من أن هذا الأمر لا يحدث عند عمل مصفوفة من قائمة عادية (ليس قائمة متداخلة): np.array([4.2, 6.5, 9.142]) # Output: [4.2 6.5 9.142] ما الذي يسبب هذه المشكلة وكيف يمكنني إيقافها في Numpy حتى لا أقوم بذلك في كل مصفوفة في البرنامج؟
  6. باستخدام مصفوفات Python القياسية ، يمكنني القيام بما يلي: arr = [] arr.append([1,2,3]) arr.append([4,5,6] print(arr) # Output: [[1,2,3],[4,5,6]] ومع ذلك ، لا يمكنني فعل الشيء نفسه في numpy. فمثلا: arr = np.array([]) arr = np.append(arr, np.array([1,2,3])) arr = np.append(arr, np.array([4,5,6])) print(arr) # Ouput: [1,2,3,4,5,6] لاحظ أنه تم دمج الصفوف معًَا حاولت أيضًا أن أستخدم التابع vstack ، لكن عندما أستخدمه على مصفوفة فارغة، أحصل على: ValueError: all the input array dimensions except for the concatenation axis must match exactly لا أعرف سبب هذا الخطأ، لذلك كيف يمكنني إضافة صف جديد بمصفوفة فارغة في numpy؟
  7. أريد رسم خريطة حرارية ثنائية الأبعاد باستخدام Matplotlib، بياناتي عبارة عن مصفوفة Numpy، ولكل عنصر منها قيمة بين 0 و 1. لذا لكل عنصرين (i ، j) مثلًا في هذه المصفوفة، أريد رسم مربع عند الإحداثي (i ، j) في خريطة الحرارة، بحيث يتناسب لونها مع قيمة العنصر في المصفوفة. بفرض أن شكل المصفوفة كالتالي: >>> a = np.random.random((6, 6)) >>> a array([[0.34569628, 0.05496669, 0.67590928, 0.90239245, 0.66320443, 0.4946887 ], [0.85511099, 0.85745252, 0.91338568, 0.14328682, 0.94672538, 0.0854923 ], [0.44951428, 0.90554375, 0.70846343, 0.70827077, 0.39701985, 0.27419469], [0.50886559, 0.02832956, 0.66582517, 0.84427592, 0.62013073, 0.27639197], [0.53300279, 0.4610318 , 0.35132157, 0.69305277, 0.02898212, 0.73815412], [0.53661332, 0.61894501, 0.84694389, 0.33373854, 0.2278372 , 0.61519172]]) >>> كيف اقوم بهذا الأمر وهل يجب أن أقوم بتحويل المصفوفة لنوع آخر حتى تعمل مع Matplotlib؟
  8. لدي مصفوفة Numpy كبيرة جدًا ثنائية الأبعاد 2D تبدو كالتالي: array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], # .... [909, 910, 911]]) كيف يمكنني الحصول على مصفوفة جديدة تحتوي على عدد معين من الصفوفة المختارة عشوائيًا من المصفوفة السابقة؟ كالتالي: print(result) array([[58, 59, 60], [118, 119, 120]])
  9. لنفترض أن لدي قائمة بالشكل التالي: lst =[('a', 0), ('b', 1), ('c', 2), ('d', 3)] كيف يمكنني تحويل القائمة السابقة إلى مصفوفة Numpy بحيث يكون كل حرف من الحروف (a, b, c, d) عبارة عن أول صف في المصفوفة، والأرقام (0, 1, 2, 3) هي ثاني صف، بحيث تصبح النتيحة كالتالي: array([['a', 'b', 'c', 'd'], ['0', '1', '2', '3']])
  10. أحاول حفظ مصفوفة numpy إلى قاعدة بيانات mysql باستخدام MysqlDB. لا يبدو أن MysqlDB يفهم "nan" وقاعدة بياناتي تطرح خطأ يقول إن nan ليس في قائمة الحقول. أحتاج إلى إيجاد طريقة لتحويل "nan" إلى NoneType. هل توجد دالة جاهزة تقوم بهذا الأمر؟
  11. إن كان لدي مصفوفة بسيطة كالتالي: >>> import numpy as np >>> arr = np.array([1, 2, 3]) >>> كيف يمكنني تكرار المصفوفة السابقة لتكون بالشكل التالي: [[1, 2, 3], [1, 2, 3], [1, 2, 3]] لاحظ أنه تم نسخ المصفوفة في كل صف. وبالمثل إن كانت المصفوفة عبارة عن عمود كالتالي: >>> arr = np.array([[1],[2],[3]]) >>> arr array([[1], [2], [3]]) كيف يمكنني إستنساخها لتكون بالشكل التالي: [[1, 1, 1] [2, 2, 2] [3, 3, 3]] حاولت أن أستعمل التابع transpose ودالة ones ولكني لم أنجح في حل المشكلة.
  12. هذا سؤال سهل ولكن قل أن لدي مصفوفة X*Y. كل ما أريد فعله هو استخراج أعمدة معينة وتخزينها في مصفوفة أخرى ولكني أحصل على أخطاء في المكود لدي. هذا هو الكود: >>> import numpy as np >>> x = np.array([ ... [0,1,2,3,4,5,6,7,8,9], ... [10,11,12,13,14,15,16,17,18,19], ... [20,21,22,23,24,25,26,27,28,29] ... ]) >>> extractedData = x[[:,1],[:,9]] File "<stdin>", line 1 x[[:,1],[:,9]] ^ SyntaxError: invalid syntax >>> من المفترض أن السطر أعلاه يجب أن يكون كافياً ولكن يبدو أن ذلك غير كافي. حاولت أن أعرف أين المشكلة ولكنني لم أستطع إيجاد المشكلة. ما أحاول فعله هو إستخراج الأعمدة من 1 إلى 3، لكن لا أعرف أين المشكلة.
  13. هل توجد أي اختلافات بين أستخدام Pandas أو استخدام NumPy + SciPy، كلاهما يبدو متشابهًا للغاية وأنا أشعر بالفضول لمعرفة الحزمة التي ستكون أكثر فائدة لتحليل البيانات، خصوصًا البيانات المالية أو المتعلقة بالبورصة. وإن كان هناك إختلافات فمتى أستخدم كلًا منهما؟
  14. كيف يمكنك الحصول على مقدار (حجم) المتجه magnitude (مصفوفة أحادية البعد 1D) في Numpy؟ حاولت أن أقوم بالأمر بنفسي وكتبت الكود التالي: def magnitude(x): return math.sqrt(sum(i**2 for i in x)) الكود السابق يعمل بدون مشكلة، لكني أتسأل هل توجد دالة جاهزة في Numpy تقوم بهذا الأمر بدلًا من إستعمال مكتبات مثل math؟
  15. لدي مصفوفة NumPy من نوع bool من النوع المنطقي. أريد حساب عدد العناصر التي تكون قيمها True. هل هناك دالة في Numpy أو Python مخصص لهذه المهمة؟ أو هل أحتاج إلى حلقة تكرار للعناصر الموجودة في المصفوفة الخاص بي؟
  16. لاحظت أن كلا الدالتين يقوم بإرجاع نفس القيمة بدون أي إختلاف: >>> import numpy as np >>> np.mean([1, 2, 3]) 2.0 >>> np.average([1, 2, 3]) 2.0 >>> ومع ذلك، أعتقد أنه يجب أن تكون هناك بعض الاختلافات، لأنهما في النهاية دالتين مختلفتين. ما هو الفرق بينهما؟
  17. لدي كود مشابة للتالي: import numpy as np avgDists = np.array([2, 9, 7, 10, 5, 3]) ids = avgDists.argsort()[:3] print(ids) # Output: array([0, 5, 4], dtype=int64) هل من الممكن استخدام نفس دالة argsort بترتيب تنازلي للحصول على مؤشرات indices أعلى ثلاثة العناصر؟
  18. لدي مصفوفة NumPy ثنائية الأبعاد وأريد استبدال كل القيم الأكبر أو تساوي عتبة محددة T بالقيمة 255.0 import numpy as np arr = np.array([[1,2,3,4,5,6,7,8,9,0], [11,22,33,44,55,66,77,88,99,110]]) هل يجب أن أقوم بالمرور على كل عنصر في المصفوفة وأقوم بإستبداله يدويًا أم أن هناك دالة جاهزة أو طريقة أسرع في مكتبة Numpy تقوم بهذا الأمر؟ وكيف أقوم بهذا الأمر في حالة كان حجم المصفوفة مختلفًا (أي لم تكن المصفوفة ثنائية الأبعاد على سبيل المثال)؟
  19. أريد التحقق مما إذا كانت مصفوفة numpy فارغة أم لا، لقد استخدمت الشرط التالي، لكن هذا يفشل إذا كانت المصفوفة كالتالي: import numpy as np a = np.array([[]]) if len(a) == 0: print('empty') else: print('not empty') ما الطريقة التي تجعل الشرط يتحقق ويتم طباعة empty؟
  20. لدي الكود التالي: r = numpy.zeros(shape = (width, height, 2)) // Width و height قيم عددية يقوم السطر السابق بتوليد مصفوفة حجمها width * height* 2، بدلاً من ذلك، أود معرفة ما إذا كانت هناك دالة أو طريقة لتهيئتها باستخدام NaN بدلًا من الأصفار، لتكون النتيجة كالتالي على سبيل المثال: # في حالة كان # width = 2 # height = 2 array([[[nan, nan], [nan, nan]], [[nan, nan], [nan, nan]]])
  21. أود تحويل مصفوفة Numpy إلى متجه وحدة unit vector. وبشكل أكثر تحديدًا ، أنا أبحث عن إصدار مكافئ للدالة التالية: def normalize(v): norm = np.linalg.norm(v) if norm == 0: return v return v / norm هل هناك شيء من هذا القبيل في numpy؟
  22. هل هناك طريقة مناسبة لحساب قيمة percentile لمصفوفة معقدة أحادية البعد في مكتبة Numpy؟ أنا أبحث عن شيء مشابه للدالة المئوية percentile في Excel. لقد بحثت في مرجع Numpy، ولم أجد شيء يذكر حول هذا الأمر. كيف يمكنني القيام بهذا الأمر في Numpy؟
  23. كيف أقوم بحذف عناصر من مصفوفة Numpy، لدي مصفوفة بسيطة كالتالي: >>> import numpy as np >>> arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) حاولت أن أستعلم جملة del كالتالي: >>> del arr[0] Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: cannot delete array elements >>> لكن كما هو واضح، ظهر لي خطأ من نوع ValueError، كيف أقوم بحذف العناصر من مصفوفات Numpy؟ وهل يجب أن أقوم بحذف كل عنصر على حدى (أي هل يمكن حذف عدد من العناصر معًا)؟
  24. لدي مصفوفة Numpy بالشكل التالي: a = np.array([1, 0, 3]) كيف يمكنني عمل مصفوفة one-hot ثنائية البعد بالشكل التالي بناءًا على المصفوفة السابقة: array([[0., 1., 0., 0.], # 1 [1., 0., 0., 0.], # 0 [0., 0., 0., 1.]]) # 3 لاحظ أن كل عنصر في المصفوفة الأولى يشير إلى index العنصر في المصفوفة الثانية.
  25. أريد معرفة كيفية إزالة قيم nan من المصفوفة التالية. تبدو المصفوفة الخاصة بي على هذا النحو: array([1400., 1500., 1600., nan, nan, nan, 1700.]) كيف يمكنني إزالة قيم nan من هذه المصفوفة لتصبح النتيجة بالشكل التالي: array([1400., 1500., 1600., 1700.])
×
×
  • أضف...