• 0

كيفية الحصول على ناتج ضرب هادامار (Hadamard Product) في numpy؟

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

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

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 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
2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن