Ho due matrici
a = np.matrix([[1,2], [3,4]])
b = np.matrix([[5,6], [7,8]])
e voglio ottenere il prodotto saggio di elemento,, [[1*5,2*6], [3*7,4*8]]
uguale
[[5,12], [21,32]]
Ho provato
print(np.dot(a,b))
e
print(a*b)
ma entrambi danno il risultato
[[19 22], [43 50]]
che è il prodotto matrice, non il prodotto saggio degli elementi. Come posso ottenere il prodotto element-wise (noto anche come prodotto Hadamard) utilizzando le funzioni integrate?
a
e b
numpy array? Inoltre, nella tua domanda sopra, stai usando x
e y
per il calcolo invece di a
e b
. È solo un errore di battitura?
@
per la moltiplicazione di matrici con array numpy, il che significa che non dovrebbe esserci assolutamente alcuna buona ragione per usare matrici su array.
a
e b
sono liste. Lavoreranno in np.dot
; ma non in a*b
. Se usi np.array(a)
o np.matrix(a)
, *
funziona ma con risultati diversi.
a
eb
non sei il tipo di matrice di NumPy? Con questa classe,*
restituisce il prodotto interno, non per elemento. Ma per la solitandarray
classe,*
significa prodotto per elementi.