Element-Wise Multiplication in NumPy

Element-wise multiplication, also known as the Hadamard Product is the multiplication of every element in a matrix by its corresponding element on a secondary matrix.

 

To perform element-wise matrix multiplication in NumPy, use either the np.multiply() function or the * (asterisk) character. These operations must be performed on matrices of the same dimension.

 

Python Matrix Element-Wise Multiplication with np.multiply()

To multiply matrices, pass them as arguments to np.multply() and it will return a new matric containing the result.

 

import numpy as np

m1 = np.array([[2,6,3,9,20],[43,35,28,3,7]])
m2 = np.array([[5,16,4,14,22],[18,8,19,3,3]])

print(np.multiply(m1,m2))
[[ 10  96  12 126 440]
[774 280 532   9  21]]

 

Element-Wise Multiplication On Specific Rows and Columns

To perform the multiplication on specific rows or columns specify them when passing the matrices into np.multiply() like this:

 

import numpy as np

m1 = np.array([[2,6,3,9,20],[43,35,28,3,7]])
m2 = np.array([[5,16,4,14,22],[18,8,19,3,3]])

print(np.multiply(m1[0,:],m2[0,:]))
[ 10  96  12 126 440]

 

Here is another example specifying columns to multiply:

 

import numpy as np

m1 = np.array([[2,6,3,9,20],[43,35,28,3,7]])
m2 = np.array([[5,16,4,14,22],[18,8,19,3,3]])

print(np.multiply(m1[:,2],m2[:,0]))
[ 15 504]

 

Multiply Matrices in Python with the * Operator

The native Python * (asterisk) operator will perform element-wise multiplication of matrices and return a new matrix containing the result.

 

import numpy as np

m1 = np.array([[2,6,3,9,20],[43,35,28,3,7]])
m2 = np.array([[5,16,4,14,22],[18,8,19,3,3]])

print(m1 * m2)
[[ 10  96  12 126 440]
[774 280 532   9  21]]