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
y b
matrices numpy? Además, en su pregunta anterior, está utilizando x
y y
para el cálculo en lugar de a
y b
. ¿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
y b
son listas. Trabajarán en np.dot
; pero no en a*b
. Si usa np.array(a)
o np.matrix(a)
, *
funciona pero con resultados diferentes.
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.