Tengo dos matrices
a = np.matrix([[1,2], [3,4]])
b = np.matrix([[5,6], [7,8]])
y quiero obtener el producto por elementos [[1*5,2*6], [3*7,4*8]]
, igual
[[5,12], [21,32]]
Yo he tratado
print(np.dot(a,b))
y
print(a*b)
pero ambos dan el resultado
[[19 22], [43 50]]
que es el producto de la matriz, no el producto de elementos. ¿Cómo puedo obtener el producto basado en elementos (también conocido como producto Hadamard) utilizando funciones integradas?
a
yb
no eres el tipo de matriz de NumPy? Con esta clase,*
devuelve el producto interno, no el elemento. Pero para landarray
clase habitual ,*
significa producto basado en elementos.a
yb
matrices numpy? Además, en su pregunta anterior, está utilizandox
yy
para el cálculo en lugar dea
yb
. ¿Es solo un error tipográfico?@
para la multiplicación de matrices con matrices numpy, lo que significa que no debería haber absolutamente ninguna buena razón para usar matrices sobre matrices.a
yb
son listas. Trabajarán ennp.dot
; pero no ena*b
. Si usanp.array(a)
onp.matrix(a)
,*
funciona pero con resultados diferentes.