# Compute the outer product of two given vectors using NumPy in Python

In Python, we can use the outer() function of the NumPy package to find the outer product of two matrices.

Syntax : numpy.outer(a, b, out = None)

Parameters :

a : [array_like] First input vector. Input is flattened if not already 1-dimensional.

b : [array_like] Second input vector. Input is flattened if not already 1-dimensional.

out : [ndarray, optional] A location where the result is stored.

Return : [ndarray] Returns the outer product of two vectors. out[i, j] = a[i] * b[j]

Example 1: Outer Product of 1-D array

## Python3

 `# Importing library``import` `numpy as np` `# Creating two 1-D arrays``array1 ``=` `np.array([``6``,``2``])``array2 ``=` `np.array([``2``,``5``])``print``(``"Original 1-D arrays:"``)``print``(array1)``print``(array2)` `# Output``print``(``"Outer Product of the two array is:"``)``result ``=` `np.outer(array1, array2)``print``(result)`

Output:

```Original 1-D arrays:
[6 2]
[2 5]
Outer Product of the two array is:
[[12 30]
[ 4 10]]```

Time Complexity: O(n^2), where n is the length of the input arrays “array1” and “array2”.

Space Complexity: O(n^2)

Example 2: Outer Product of 2X2 matrix

## Python3

 `# Importing library``import` `numpy as np` `# Creating two 2-D matrix``matrix1 ``=` `np.array([[``1``, ``3``], [``2``, ``6``]])``matrix2 ``=` `np.array([[``0``, ``1``], [``1``, ``9``]])``print``(``"Original 2-D matrix:"``)``print``(matrix1)``print``(matrix2)` `# Output``print``(``"Outer Product of the two matrix is:"``)``result ``=` `np.outer(matrix1, matrix2)``print``(result)`

Output:

```Original 2-D matrix:
[[1 3]
[2 6]]
[[0 1]
[1 9]]
Outer Product of the two matrix is:
[[ 0  1  1  9]
[ 0  3  3 27]
[ 0  2  2 18]
[ 0  6  6 54]]```

Example 3: Outer Product of 3X3 matrix

## Python3

 `# Importing library``import` `numpy as np` `# Creating two 3-D matrix``matrix1 ``=` `np.array([[``2``, ``8``, ``2``], [``3``, ``4``, ``8``], [``0``, ``2``, ``1``]])``matrix2 ``=` `np.array([[``2``, ``1``, ``1``], [``0``, ``1``, ``0``], [``2``, ``3``, ``0``]])``print``(``"Original 3-D matrix:"``)``print``(matrix1)``print``(matrix2)` `# Output``print``(``"Outer Product of the two matrix is:"``)``result ``=` `np.outer(matrix1, matrix2)``print``(result)`

Output:

```Original 3-D matrix:
[[2 8 2]
[3 4 8]
[0 2 1]]
[[2 1 1]
[0 1 0]
[2 3 0]]
Outer Product of the two matrix is:
[[ 4  2  2  0  2  0  4  6  0]
[16  8  8  0  8  0 16 24  0]
[ 4  2  2  0  2  0  4  6  0]
[ 6  3  3  0  3  0  6  9  0]
[ 8  4  4  0  4  0  8 12  0]
[16  8  8  0  8  0 16 24  0]
[ 0  0  0  0  0  0  0  0  0]
[ 4  2  2  0  2  0  4  6  0]
[ 2  1  1  0  1  0  2  3  0]]```

Previous
Next