我有两个矩阵
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产品)?
是
—
jtitusj
a
和b
numpy的数组?此外,在上面你的问题,你正在使用x
和y
进行计算,而不是a
和b
。这只是一个错字吗?
a和b是numpy矩阵类型的元素
—
Malintha
要挑剔,
—
hpaulj
a
并且b
列出。他们将工作np.dot
; 但不在a*b
。如果使用np.array(a)
或np.matrix(a)
,则可以使用,*
但结果不同。
a
并且b
不是NumPy的矩阵类型吗?对于此类,*
返回内部乘积,而不是按元素计算。但是对于普通的ndarray
班级,则*
意味着按元素进行乘积。