我有两个矩阵
a = np.matrix([[1,2], [3,4]])
b = np.matrix([[5,6], [7,8]])
我想得到元素产品, [[1*5,2*6], [3*7,4*8]]
,等于
[[5,12], [21,32]]
我努力了
print(np.dot(a,b))
和
print(a*b)
但都给出了结果
[[19 22], [43 50]]
这是矩阵乘积,而不是元素乘积。如何使用内置函数获得逐元素产品(又名 Hadamard 产品)?
原文由 Malintha 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于
matrix
对象的元素乘法,您可以使用numpy.multiply
:结果
但是,您应该真正使用
array
而不是matrix
。matrix
对象与常规 ndarray 有各种可怕的不兼容。使用 ndarrays,您可以使用*
进行元素乘法:如果您使用的是 Python 3.5+,您甚至不会失去使用运算符执行矩阵乘法的能力,因为
@
现在可以进行矩阵乘法: