Related Articles

# Compute the Kronecker product of two mulitdimension NumPy arrays

• Last Updated : 05 Sep, 2020

Given an `m X n` matrix `A` and a `p X q` matrix `B`, their Kronecker product is `A ⊗ B`, also called their matrix direct product, is an `(m*p) X (n*q)` matrix.

```A = | (a00)  (a01) |
| (a10)  (a11) |

B = | (b00)  (b01) |
| (b10)  (b11) |

A ⊗ B = | (a00)*(b00)  (a00)*(b01)  (a01)*(b00)  (a01)*(b00) |
| (a00)*(b01)  (a00)*(b11)  (a01)*(b01)  (a01)*(b11) |
| (a10)*(b00)  (a10)*(b01)  (a11)*(b00)  (a11)*(b01) |
| (a10)*(b10)  (a10)*(b11)  (a11)*(b10)  (a11)*(b11) |
```

The Kronecker product of two given multi-dimensional arrays can be computed using the `kron() `method in the `NumPy` module. The `kron()` method takes two arrays as an argument and returns the Kronecker product of those two arrays.

Syntax:

`numpy.kron(array1, array2)`

Below are some programs which depict the implementation of kron() method in computing Kronecker product of two arrays:

Example 1:

 `# Importing required modules``import` `numpy`` ` `# Creating arrays``array1 ``=` `numpy.array([[``1``, ``2``], [``3``, ``4``]])``print``(``'Array1:\n'``, array1)`` ` `array2 ``=` `numpy.array([[``5``, ``6``], [``7``, ``8``]])``print``(``'\nArray2:\n'``, array2)`` ` `# Computing the Kronecker Product``kroneckerProduct ``=` `numpy.kron(array1, array2)``print``(``'\nArray1 ⊗ Array2:'``)``print``(kroneckerProduct)`

Output:

```Array1:
[[1 2]
[3 4]]

Array2:
[[5 6]
[7 8]]

Array1 ⊗ Array2:
[[ 5  6 10 12]
[ 7  8 14 16]
[15 18 20 24]
[21 24 28 32]]
```

Example 2:

 `# Importing required modules``import` `numpy`` ` `# Creating arrays``array1 ``=` `numpy.array([[``1``, ``2``, ``3``]])``print``(``'Array1:\n'``, array1)`` ` `array2 ``=` `numpy.array([[``3``, ``2``, ``1``]])``print``(``'\nArray2:\n'``, array2)`` ` `# Computing the Kronecker Product``kroneckerProduct ``=` `numpy.kron(array1, array2)``print``(``'\nArray1 ⊗ Array2:'``)``print``(kroneckerProduct)`

Output:

```Array1:
[[1 2 3]]

Array2:
[[3 2 1]]

Array1 ⊗ Array2:
[[3 2 1 6 4 2 9 6 3]]
```

Example 3:

 `# Importing required modules``import` `numpy`` ` `# Creating arrays``array1 ``=` `numpy.array([[``1``, ``2``, ``3``], [``4``, ``5``, ``6``]])``print``(``'Array1:\n'``, array1)`` ` `array2 ``=` `numpy.array([[``1``, ``2``], [``3``, ``4``], [``5``, ``6``]])``print``(``'\nArray2:\n'``, array2)`` ` `# Computing the Kronecker Product``kroneckerProduct ``=` `numpy.kron(array1, array2)``print``(``'\nArray1 ⊗ Array2:'``)``print``(kroneckerProduct)`

Output:

```Array1:
[[1 2 3]
[4 5 6]]

Array2:
[[1 2]
[3 4]
[5 6]]

Array1 ⊗ Array2:
[[ 1  2  2  4  3  6]
[ 3  4  6  8  9 12]
[ 5  6 10 12 15 18]
[ 4  8  5 10  6 12]
```

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up