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

السؤال

نشر

لدي مصفوفتين كالتالي:

>>> 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؟

Recommended Posts

  • 3
نشر (معدل)

يمكن استخدام الدالة numpy.multiply كالتلي:

import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
np.multiply(a,b)
"""
array([[ 5, 12],
       [21, 32]])
"""

كما ويمكنك استخدام المعامل *:

import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
a*b
"""
array([[ 5, 12],
       [21, 32]])
"""

 

تم التعديل في بواسطة Ali Haidar Ahmad

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...