# How to generate 2-D Gaussian array using NumPy?

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’)

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:

## Python3

 `# Importing Numpy package``import` `numpy as np` `# sigma(standard deviation) and muu(mean) are the parameters of gaussian`  `def` `gaussuian_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``)` `    ``# lower normal part of gaussian``    ``normal ``=` `1``/``(``2``, ``0` `*` `np.pi ``*` `sigma``*``*``2``)` `    ``# Calculating Gaussian filter``    ``gauss ``=` `np.exp(``-``((dst``-``muu)``*``*``2` `/` `(``2.0` `*` `sigma``*``*``2``))) ``*` `normal`  `kernel_size``=``5``gaussian ``=` `gaussian_filter(kernel_size)``print``(``"gaussian filter of{} X {} :"``.``format``(kernel_size,kernel_size))``print``(gaussian)`

Output:

```gaussian filter of5 X 5 :
[[0.00291502 0.01306423 0.02153928 0.01306423 0.00291502]
[0.01306423 0.05854983 0.09653235 0.05854983 0.01306423]
[0.02153928 0.09653235 0.15915494 0.09653235 0.02153928]
[0.01306423 0.05854983 0.09653235 0.05854983 0.01306423]
[0.00291502 0.01306423 0.02153928 0.01306423 0.00291502]]```

Example 2:

## Python3

 `# Importing Numpy package``import` `numpy as np` `# sigma(standard deviation) and muu(mean) are the parameters of gaussian`  `def` `gaussuian_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``)` `    ``# lower normal part of gaussian``    ``normal ``=` `1``/``(``2``, ``0` `*` `np.pi ``*` `sigma``*``*``2``)` `    ``# Calculating Gaussian filter``    ``gauss ``=` `np.exp(``-``((dst``-``muu)``*``*``2` `/` `(``2.0` `*` `sigma``*``*``2``))) ``*` `normal`  `kernel_size ``=` `3``gaussian ``=` `gaussian_filter(kernel_size``=``3``)``print``(``"gaussian filter of{} X {} :"``.``format``(kernel_size, kernel_size))``print``(gaussian)`

Output:

```gaussian filter of3 X 3 :
[[0.05854983 0.09653235 0.05854983]
[0.09653235 0.15915494 0.09653235]
[0.05854983 0.09653235 0.05854983]] ```

Previous
Next