Eu tenho duas matrizes
a = np.matrix([[1,2], [3,4]])
b = np.matrix([[5,6], [7,8]])
e eu quero obter o produto com base em elementos [[1*5,2*6], [3*7,4*8]]
, igualando
[[5,12], [21,32]]
eu tentei
print(np.dot(a,b))
e
print(a*b)
mas ambos dão o resultado
[[19 22], [43 50]]
que é o produto da matriz, não o produto do elemento sábio. Como posso obter o produto element-wise (também conhecido como produto Hadamard) usando funções integradas?
a
e b
matrizes entorpecidas? Além disso, em sua pergunta acima, você está usando x
e y
para cálculo em vez de a
e b
. Isso é apenas um erro de digitação?
@
para multiplicação de matrizes com arrays numpy, o que significa que não deve haver absolutamente nenhuma boa razão para usar matrizes em vez de arrays.
a
e b
listas. Eles vão trabalhar np.dot
; mas não dentro a*b
. Se você usar np.array(a)
ou np.matrix(a)
, *
funciona , mas com resultados diferentes.
a
eb
não é o tipo de matriz do NumPy? Com esta classe,*
retorna o produto interno, não a nível de elemento. Mas para andarray
classe normal ,*
significa produto com base no elemento.