The outer product is an extremely useful linear algebra concept that has a variety of applications in quantum theory, signal processing, image compression, and a number of statistical algorithms.

In this tutorial, we’ll demonstrate how to find the outer products of two vectors or matrices with Python. Like many other linear algebra operations, the NumPy library in Python allows you to easily find the outer products of two vectors. NumPy is a powerful linear algebra workhorse!

## Outer Product of Vectors

Let’s first see how to find the outer product of two one-dimensional vectors. If you don’t have NumPy installed, go ahead and install it with:

`pip install numpy`

In the script below, we’ll create two one-dimensional NumPy arrays. Each of the two arrays contain three integer items. The arrays have been named `outer()`

method from the NumPy library to find the outer product of two vectors. Simply pass the two vectors as parameter values to the `outer()`

method. The output of the script below prints the two original vectors

```
import numpy as np
v1 = np.array([4,1,6])
v2 = np.array([7,2,4])
print("Original Vectors:")
print(v1)
print(v2)
print("Outer product:")
op = np.outer(v1, v2)
print(op)
```

**Output:**

```
Original Vectors:
[4 1 6]
[7 2 4]
Outer product:
[[28 8 16]
[ 7 2 4]
[42 12 24]]
```

## Outer Product of Matrices

With NumPy, you can use the `outer()`

method to find the outer product of multi-dimensional matrices as well. The following script defines two 2 x 2 matrices,

```
import numpy as np
m1 = np.array([[4,1],
[3,5]])
m2 = np.array([[7,2],
[3,1]])
print("Original Vectors:")
print(m1)
print(m2)
print("Outer product:")
op = np.outer(m1, m2)
print(op)
```

**Output:**

```
Original Vectors:
[[4 1]
[3 5]]
[[7 2]
[3 1]]
Outer product:
[[28 8 12 4]
[ 7 2 3 1]
[21 6 9 3]
[35 10 15 5]]
```

Let’s see one more example showing how the NumPy libraries `outer()`

function is used to find the outer product of two matrices - this time with two 3 x 3 arrays. The script below calculates the outer product of two 3 x 3 matrices and prints the output on the console.

```
import numpy as np
m1 = np.array([[4,1,8],
[3,5,7],
[7,2,6]])
m2 = np.array([[7,2,9],
[3,1,2],
[4,2,9]])
print("Original Vectors:")
print(m1)
print(m2)
print("Outer product:")
op = np.outer(m1, m2)
print(op)
```

**Output:**

```
Original Vectors:
[[4 1 8]
[3 5 7]
[7 2 6]]
[[7 2 9]
[3 1 2]
[4 2 9]]
Outer product:
[[28 8 36 12 4 8 16 8 36]
[ 7 2 9 3 1 2 4 2 9]
[56 16 72 24 8 16 32 16 72]
[21 6 27 9 3 6 12 6 27]
[35 10 45 15 5 10 20 10 45]
[49 14 63 21 7 14 28 14 63]
[49 14 63 21 7 14 28 14 63]
[14 4 18 6 2 4 8 4 18]
[42 12 54 18 6 12 24 12 54]]
```

Can you imagine how much of a pain that would be to do by hand? This is why I love programming! For weekly Python tutorials like this, go ahead and subscribe using the form below.

Want to do more with Python?

We've uncovered a lot more tricks to help you get the most out of Python. To take your Python programming to the next level, enter your email address below and we'll send you our most powerful Python tricks yet.