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

Fahmy Mostafa

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

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

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

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

    1

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

  1. أريد أن أقوم بعمل مصفوفة بأبعاد معينة وتكون كل العناصر في المصفوفة عبارة عن نرقم معين، حاولت أن أستخدم الكود التالي: >>> import numpy as np >>> a = np.empty(5) >>> for i in range(5): ... a[i] = 9 ... >>> a array([9., 9., 9., 9., 9.]) لكن المشكلة أنه لا يمكنني عمل مصفوفة متعددة الأبعاد بشكل سهل، وسأحتاج إلى أستخدام حلقات متعددة، هل توجد طريقة أسهل في Numpy لعمل مصفوفة كالتالي على سبيل المثال: array([[3, 3, 3, 3], [3, 3, 3, 3], [3, 3, 3, 3]])
  2. لنفترض أن لدي مصفوفة بسيطة تحتوي على عناصر مكررة كالتالي: >>> import numpy as np >>> x = np.array([1,1,1,2,2,2,5,25,1,1]) >>> freq_count(x) # pseudo code [(1, 5), (2, 3), (5, 1), (25, 1)] >>> كيف يمكنني الحصول على نفس النتيجة السابقة في Numpy؟
  3. ما هو الفرق بين المصفوفة من نوع ndarray والمصفوفة العادية array في Numpy؟ عرفت مؤخرًا أن دوال مثل asanyarray وغيرها قد تعيد مصفوفة من نوع ndarray لكن لم أفهم ما الفرق بين هذا النوع من المصفوفات والمصفوفات العادية
  4. في الكود البسيط التالي، كلتا الداتين ترجعان نفس النتيجة: >>> import numpy as np >>> y = np.array(((1,2,3),(4,5,6),(7,8,9))) >>> y.flatten() array([1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> y.ravel() array([1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> ما الفرق بين الدالتين flatten و ravel؟ وفي حالة عدم وجود فرق بينهما، ما هي الحاجة إلى وظيفتين مختلفتين تؤديان نفس الوظيفة؟
  5. لدي مصفوفتان Numpy بسيطتان أحادي البعد one-dimensional. حاولت أن أقوم بربطهم باستخدام التابع numpy.concatenate كالتالي: >>> import numpy as np >>> a = np.array([1, 2, 3]) >>> b = np.array([4, 5]) >>> np.concatenate(a, b) لكنني تلقيت هذا الخطأ التالي: TypeError: only integer scalar arrays can be converted to a scalar index لماذا يظهر هذا الخطأ؟ وكيف يمكنني ربط المصفوفتان معًا؟
  6. أعرف ان الصورة عبارة عن مصفوفة كبيرة من القيم التي تعبر عن لون كل بيكسل Pixel، ولدي مصفوفة Numpy تحتوي على قيم تعبر عن ألوان كل بيكسل في الصورة. كيف يمكنني إستخراجها في شكل صورة؟ بأي تنسيق (png ، jpeg ، bmp ...). هل توجد مكتبة جاهزة تقوم بهذا الأمر؟
  7. يمكن إعادة تشكيل مصفوفة عددية matrix إلى متجهvector باستخدام التابع reshape مع المدخل -1. لكني لا أعرف ما تعنيه -1 هنا. على سبيل المثال: >>> import numpy as np >>> a = np.matrix([[1, 2, 3, 4], [5, 6, 7, 8]]) >>> b = np.reshape(a, -1) >>> a matrix([[1, 2, 3, 4], [5, 6, 7, 8]]) >>> b matrix([[1, 2, 3, 4, 5, 6, 7, 8]]) >>> لا أعرف ماذا يعني -1 هنا؟
  8. عند إنشاء DataFrame في مكتبة Pandas من خلال مصفوفة Numpy، كيف أحدد عمود الفهرس index ورؤوس الأعمدة headers؟ على سبيل المثال، لدي مصفوفة Numpy تتكون من قائمة من القوائم list of lists، تمثل مصفوفة ثنائية الأبعاد مع تسميات الصفوف وأسماء الأعمدة كما هو موضح أدناه: data = np.array([ ['', 'Col1', 'Col2'], ['Row1', 1, 2], ['Row2', 3, 4] ]) أرغب في أن يحتوي DataFrame الناتج على Row1 و Row2 كقيم الفهرس ، و Col1 و Col2 كقيم رؤوس الأعمدة headers كيف يمكنني جعل النتيجة تصبح بهذا الشكل؟ Col1 Col2 Row1 1 2 Row2 3 4
  9. كيفية تحويل مصفوفة numpy تحتوي على أرقام عشرية إلى مصفوفة integer؟ على سبيل المثال لدي المصفوفة التالية: import numpy as np arr = np.array([[1.0, 2.1], [3.2, 4.3]]) كيف أقوم بتحويلها إلى المصفوفة التالية: array([[1, 2], [3, 4]])
  10. لا يمكنني معرفة كيفية استخدام array أو matrix بالطريقة التي أستخدم بها القائمة list عادةً. أريد إنشاء array فارغة ثم إضافة عمود (أو صف) إليها في المرة الواحدة مثلما نفعل عندما نستخدم التابع append على القوائم على سبيل المثال نقوم بالتالي في حالة إستخدام القوائم lists: lst = [] for item in data: lst.append(item) كيف يمكننا القيام بذلك في Numpy؟
  11. ما هو الفرق بين دالات array() و asarray() في Numpy؟ ومتى يجب استخدام أحدهما دون الآخر؟ يبدو أنها تولد مخرجات متطابقة لجميع المدخلات التي يمكنني التفكير فيها. كما توجد دالات أخرى مشابهة مثل asanyarray ولكني لم أدرسها بعد. فيما تستخدم هذه الدالات؟ أعتقد أنها ليست مجرد أسماء بديلة alias لدالة array؟ صحيح؟
  12. كيف أقوم بتحويل مصفوفة NumPy إلى قائمة List في Python على سبيل المثال: import numpy lst = [[1,2,3], [4,5,6]] newArray = numpy.array(lst) print(newArray) """ Output: [[1 2 3] [4 5 6]] """ الآن كيف يمكنني تحويل newArray إلى قائمة List مرة أخرى؟ حاولت أن أستعمل الدالة list ولكن يبدو أنها تحول كل صف إلى مصفوفة Numpy array: >>> list(newArray) [array([1, 2, 3]), array([4, 5, 6])]
  13. أشعر بالفضول لمعرفة ما إذا كان هناك أي طريقة لطباعة numpy.arrays ، على سبيل المثال ، بطريقة مشابهة لهذه: [ 0.71 0.65 0.46 0.13 0.87 0.54 0.77 0.37 0.1 0.66 ] بدلًا من الطريقة العادية: array([0.71, 0.65, 0.46, 0.13, 0.87, 0.54, 0.77, 0.37, 0.1 , 0.66]) إذا كنت أرغب في طباعة مصفوفة الصفوف الصغيرة ، فإنها تطبع العديد من الكسور العشرية floats، غالبًا بتنسيق "علمي scientific" ، وهو أمر يصعب قراءته حتى بالنسبة للمصفوفات ذات الأبعاد القليلة. ومع ذلك ، يبدو أنه يجب طباعة numpy.array كنص >>> a = np.random.random(10) >>> a array([0.71244268, 0.65202232, 0.45514279, 0.12868502, 0.86755307, 0.54365432, 0.76884071, 0.37287693, 0.10350725, 0.66008725]) >>> str(a) '[0.71244268 0.65202232 0.45514279 0.12868502 0.86755307 0.54365432\n 0.76884071 0.37287693 0.10350725 0.66008725]' كيف يمكنني طباعة المصفوفة بالشكل السابق بدون تحويلها إلى نص؟ وكيف يمكنني التحكم في عدد الأرقام الموجودة بعد العلامة العشرية؟
  14. ما هي مزايا وعيوب كل منهما؟ من خلال ما رأيته ، يمكن أن يعمل أحدهما كبديل للآخر إذا لزم الأمر ، فهل يجب أن استخدام كليهما أم يجب أن ألتزم بواحد منهما فقط؟ هل سيؤثر أداء البرنامج على اختياري؟ أقوم ببعض التعلم الآلي machine learning باستخدام numpy ، لذلك هناك بالفعل الكثير من المصفوفات matrices، ولكن أيضًا الكثير من المتجهات vectors (المصفوفات arrays). import numpy as np mat = np.mat('4 3; 2 1') arr = np.array([[4, 3], [2, 1]])
  15. هل هناك طريقة أو دالة في Numpy لإيجاد أقرب قيمة في المصفوفة؟ على سبيل المثال، لدي مصفوفة كالتالي: >>> import numpy as np >>> array = np.random.random(10) >>> array array([0.98547232, 0.72307097, 0.74612579, 0.92416426, 0.56989436, 0.44332925, 0.76635451, 0.54613872, 0.42633231, 0.72585823]) أريد دالة تعطيني أقرب قيمة في المصفوفة لرقم معين كالتالي: get_nearest(array, 5.0) # Output: 0.54613872
  16. كيف يمكنني إعادة ترتيب عناصر مصفوفة في NumPy حسب العمود n مثلًا؟ على سبيل المثال لدي المصفوفة التالية: arr = array([[9, 2, 3], [4, 5, 6], [7, 0, 5]]) كيف يمكنني ترتيب الصفوفة وفقًا لقيم العمود الثاني؟ لتكون النتيجة كالتالي: array([[7, 0, 5], [9, 2, 3], [4, 5, 6]])
  17. أعلم أن هناك دالة لقائمة بايثون List لإرجاع الفهرس الأول لشيء ما: >>> lst = [1, 2, 3] >>> lst.index(2) 1 هل هناك شيء مشابهة لهذه الدالة في مصفوفات NumPy؟ حاولت أن استعمل التالي: numpy.index(2) لكن يظهر لي خطأ بعد وجود مثل هذه الدالة: AttributeError: module 'numpy' has no attribute 'index'
  18. لدي مصفوفة من نوع ndarray كالتالي: arr = numpy.array([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1]) عندما أحاول حساب عدد مرات تكرار رقم 0 أو 1 كالتالي: arr.count(0) يظهر لي الخطأ التالي: AttributeError: 'numpy.ndarray' object has no attribute 'count' لماذا يظهر هذا الخطأ؟ وكيف أقوم بحساب عدد مرات تكرار عنصر معين في مصفوفة Numpy؟
  19. هل هناك طريقة لتفريغ مصفوفة NumPy في ملف CSV؟ لدي مصفوفة NumPy ثنائة الأبعاد وأحتاج إلى حفظها بتنسيق يمكن للبشر قراءته مثل ملفات CSV. كيف أقوم بهذا الأمر؟ علمًا أن المصفوفة كبيرة بعض الشيء . هل يمكن أن أستعمل مكتبة Numpy فقط في هذه المهمة أم يجب أن أستعمل مكتبات أخرى مثل Pandas؟
  20. عندما أقوم بطباعة مصفوفة عددية ، أحصل على بعض البيانات فقط كالتالي: >>> x= numpy.arange(10000) >>> x array([ 0, 1, 2, ..., 9997, 9998, 9999]) >>> لكنني أريد طباعة المصفوفة الكاملة، كيف أقوم بذلك؟
  21. لدي مجموعة بيانات من المسافات تسمى dists. أريد تحديد المسافات التي تكون بين قيمتين. لقد كتبت السطر التالي للقيام بذلك: dists[(np.where(dists >= r)) and (np.where(dists <= r + dr))] لكن بالرغم من ذلك أحصل على نفس النتيجة وكأني أستعمال الشرط التالي: (np.where(dists <= r + dr)) إذا قمت بتنفيذ الأوامر بالتسلسل باستخدام متغير مؤقت ، فإنه يعمل بشكل جيد. لماذا لا يعمل الكود أعلاه ، وكيف يمكنني تشغيله؟
  22. لنفترض أن لدي المصفوفة التالية: arr = numpy.array([[1, 2], [3, 4], [5, 6]]) عندما أستعمل arr[n] أحصل على صف بالكامل، [1, 2] مثلًا، كيف يمكنني أن أصل إلى أول خانة في كل عمود وأحصل على [1, 3, 5]؟ وهل هذا الأمر (إستخدام الأعمدة بدلًا من الصفوف) يؤثر على أداء السكريبت؟
  23. عندما أقوم بإستدعاء ملف csv كالتالي: df = pd.read_csv('data.csv') يظهر لي هذا الخطأ: /Users/Fahmy/anaconda/envs/py27/lib/python2.7/site-packages/pandas/io/parsers.py:1130: DtypeWarning: Columns (4,5,7,16) have mixed types. Specify dtype option on import or set low_memory=False. ما علاقة dtype بـ low_memory أليست dtype نوع في مكتبة numpy؟ ولماذا يخبرني بجعل low_memory تساوي false؟ لم أفهم كيف يساعد هذا الأمر في حل المشكلة؟
  24. هل هناك طريقة لتقسيم مصفوفة ثنائية الأبعاد في numpy إلى مصفوفات ثنائية الأبعاد أصغر؟ أي يكون لدي مصفوفة كالتالي: [[1,2,3,4], [5,6,7,8]] وأريد تحويلها إلى التالي: [[1,2], [3,4], [5,6], [7,8]] لذلك أريد أساسًا تقطيع مصفوفة 2 × 4 إلى مصفوفتين 2 × 2. هل يمكنني عمل ذلك من خلال Numpy؟
  25. لدي إطار البيانات التالي: >>> 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 لعمل هذا التغير؟ وكيف أقوم بذلك؟
×
×
  • أضف...