How to generate 2-D Gaussian array using NumPy?
Last Updated :
21 Jun, 2025
Improve
In this article, let us discuss how to generate a 2-D Gaussian array using NumPy. To create a 2 D Gaussian array using the Numpy python module.
Functions used:
- numpy.meshgrid()- It is used to create a rectangular grid out of two given one-dimensional arrays representing the Cartesian indexing or Matrix indexing.
Syntax:
numpy.meshgrid(*xi, copy=True, sparse=False, indexing='xy')
- numpy.linspace()- returns number spaces evenly w.r.t interval.
Syntax:
numpy.linspace(start, stop, num = 50, endpoint = True, retstep = False, dtype = None)
- numpy.exp()- this mathematical function helps the user to calculate the exponential of all the elements in the input array.
Syntax:
numpy.exp(array, out = None, where = True, casting = ‘same_kind’, order = ‘K’, dtype = None)
Example 1:
import numpy as np
def gaussian_filter(kernel_size, sigma=1, muu=0):
# Initializing value of x, y as grid of kernel size in the range of kernel size
x, y = np.meshgrid(np.linspace(-1, 1, kernel_size),
np.linspace(-1, 1, kernel_size))
dst = np.sqrt(x**2 + y**2)
# Normal part of the Gaussian function
normal = 1 / (2 * np.pi * sigma**2)
# Calculating Gaussian filter
gauss = np.exp(-((dst - muu)**2 / (2.0 * sigma**2))) * normal
return gauss # Return the calculated Gaussian filter
# Example usage:
kernel_size = 5
gaussian = gaussian_filter(kernel_size)
print("Gaussian filter of {} X {}:".format(kernel_size, kernel_size))
print(gaussian)
Output
Gaussian filter of 5 X 5: [[0.05854983 0.0851895 0.09653235 0.0851895 0.05854983] [0.0851895 0.12394999 0.14045374 0.12394999 0.0851895 ] [0.09653235 0.14045374 0.15915494 0.14045374 0.09653235] ...
Example 2:
import numpy as np
def gaussian_filter(kernel_size, sigma=1, muu=0):
# Initializing value of x, y as grid of kernel size in the range of kernel size
x, y = np.meshgrid(np.linspace(-2, 2, kernel_size),
np.linspace(-2, 2, kernel_size))
dst = np.sqrt(x**2 + y**2)
# Normal part of the Gaussian function
normal = 1 / (2 * np.pi * sigma**2)
# Calculating Gaussian filter
gauss = np.exp(-((dst - muu)**2 / (2.0 * sigma**2))) * normal
return gauss # Return the calculated Gaussian filter
# Example usage:
kernel_size = 3
gaussian = gaussian_filter(kernel_size=kernel_size)
print("Gaussian filter of {} X {}:".format(kernel_size, kernel_size))
print(gaussian)
Output
Gaussian filter of 3 X 3: [[0.00291502 0.02153928 0.00291502] [0.02153928 0.15915494 0.02153928] [0.00291502 0.02153928 0.00291502]]