Hadamard Product in Python

Haocheng Lin
2 min readSep 29, 2023

--

  1. Introduction:

The Hadamard product, represented as “⊙”, is the element-wise product of two matrices of the same size. Given two matrices A and B, their Hadamard product results in a new matrix where each element is the product of the corresponding elements from A and B.

2. Objective:

Photo by Marianna Gehring on Unsplash

Write a Python function to compute the Hadamard product of two matrices.

3. Prerequisites:

To achieve this, we’ll use the NumPy library which provides powerful tools for matrix operations. If you haven’t installed it, you can do so using pip:

pip install numpy

4. Function Definition:

import numpy as np
def hadamard_product(matrix_A, matrix_B):
“””
Compute the Hadamard product of two matrices.

Args:
— matrix_A (numpy.ndarray): First matrix.
— matrix_B (numpy.ndarray): Second matrix.

Returns:
— numpy.ndarray: Hadamard product of the input matrices.
“””
# Ensure matrices have the same shape
if matrix_A.shape != matrix_B.shape:
raise ValueError(“Both matrices must have the same shape for Hadamard product.”)

return np.multiply(matrix_A, matrix_B)
```

5. Usage:

Let’s test our function with two matrices:

# Define two matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# Compute their Hadamard product
result = hadamard_product(A, B)
print(result)

Output:

```
[[ 5 12]
[21 32]]
```

6. Alternative using NumPy directly:

For those familiar with NumPy, the Hadamard product is directly achieved with the `*` operator between two arrays:

result = A * B

7. Conclusion:

Photo by Maria on Unsplash

The Hadamard product is a straightforward but essential operation in matrix algebra. With Python and NumPy, calculating it is straightforward. Whether using a dedicated function or NumPy’s in-built operations, always ensure matrices are of the same shape before proceeding.

Happy coding! Remember, understanding the underlying math makes implementing these functions even more intuitive!

--

--

Haocheng Lin

UCL 🏛️MSc AI for Sustainable Development Student 🎓 2024 | UCL 🏛️MEng Computer Science Graduate 🎓 2019 - 23 | Senior Programming Tutor 👨‍🏫 | Capgemini