Fahmy Mostafa نشر 30 يونيو 2021 أرسل تقرير نشر 30 يونيو 2021 لدي مصفوفتين numpy كالتالي: x = np.array([0, 1, 2]) y = np.array([3, 4, 5]) ما أريده هو عمل مصفوفة جديدة تكون عبارة عن دمج المصفوفتين كالتالي: result = np.array([ [0, 3], [0, 4], [0, 5], [1, 3], [1, 4], [1, 5], [2, 3], [2, 4], [2, 5] ]) كيف يمكنني عمل ذلك من خلال مكتبة numpy لإتمام المهمة بأسرع ما يكون؟ 1 اقتباس
1 عبدالله عبدالرحمن11 نشر 30 يونيو 2021 أرسل تقرير نشر 30 يونيو 2021 في الإصدار الأحدث من numpy 1.8.x ،لديك دالة numpy.meshgrid والتي توفر تنفيذًا أسرع بكثير: دالة numpy.meshgrid() كانت تستخدم لتكون ثنائية الأبعاد فقط ، والآن أصبحت قادرة على ND. في هذا المثال ، ثلاثي الأبعاد: In [115]: %timeit np.array(np.meshgrid([1, 2, 3], [4, 5], [6, 7])).T.reshape(-1,3) 10000 loops, best of 3: 74.1 µs per loop In [116]: np.array(np.meshgrid([1, 2, 3], [4, 5], [6, 7])).T.reshape(-1,3) Out[116]: array([[1, 4, 6], [1, 5, 6], [2, 4, 6], [2, 5, 6], [3, 4, 6], [3, 5, 6], [1, 4, 7], [1, 5, 7], [2, 4, 7], [2, 5, 7], [3, 4, 7], [3, 5, 7]]) 2 اقتباس
0 Ali Haidar Ahmad نشر 30 يونيو 2021 أرسل تقرير نشر 30 يونيو 2021 (معدل) يمكنك تنفيذ الجداءالديكارتي باستخدام التابع التالي اعتماداً على الدالة meshgrid في مكتبة نمباي : import numpy as np x = np.array([0, 1, 2]) y = np.array([3, 4, 5]) # تعريف تابع يقوم بعملية الجداء الديكارتي def cartesian(*arrays): g = np.meshgrid(*arrays) coord = [x.ravel() for x in g] p = np.vstack(coord).T return p # استدعاء التابع وطباعة الخرج print(cartesian(x,y)) # الخرج ''' [[0 3] [1 3] [2 3] [0 4] [1 4] [2 4] [0 5] [1 5] [2 5]] ''' تم التعديل في 30 يونيو 2021 بواسطة Ali Haidar Ahmad 3 اقتباس
0 ريم المهدي نشر 30 يونيو 2021 أرسل تقرير نشر 30 يونيو 2021 يمكن حل هذه المشكلة بإستخدام الدالة product في المصفوفات و دالة itertools التي تسمح بالمرور على عناصر المصفوفات واحد تلو الأخر: import numpy as np #إنشاء المصفوفات x = np.array([0, 1, 2]) y = np.array([3, 4, 5]) # إنشاء مصفوفة فارغة لإضافة الناتج فيها لاحقا all = [] # إستخدام الحلقات مع دالة الضرب لإيجاد الناتج و إضافته للمصفوفة for r in itertools.product(x, y): all.append([r[0],r[1]]) np.array(all) 3 اقتباس
السؤال
Fahmy Mostafa
لدي مصفوفتين numpy كالتالي:
ما أريده هو عمل مصفوفة جديدة تكون عبارة عن دمج المصفوفتين كالتالي:
كيف يمكنني عمل ذلك من خلال مكتبة numpy لإتمام المهمة بأسرع ما يكون؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.