To calculate the outer product of two vectors in Python, use the **numpy outer()** function. Numpy is a mathematical library used to calculate vector algebra.

**np.outer**

The **np.outer()** is a **numpy library** function used to calculate the outer product of two given vectors. If we have two vectors A [ a,a1,a2,..an] and B [ b0,b1,b2,…bn], the outer product of these two vectors will be:

[ [ a0*b0 a0*b1 a0*b2 … a0*bn]

[ a1*b0 a0*b1 a1*b2 … a1*bn]

[ ……………………………….] ]

**Syntax**

numpy.outer(arr1, arr2, out = None)

**Parameters**

The outer() function takes two main parameters, which are:

- arr1: This is the first array.
- arr2: This is the second array.

Also, there is one optional parameter :

- out: This is the location where the result is stored.

**Return Value**

The outer() function returns a vector containing the given vectors’ outer product.

**Programming Example**

**Program to find outer() of two numeric vectors**

# Program to find outer() of two numeric vectors import numpy as np # Declaring the first array arr1 = np.array([-2, -1, 0, 1, 2, 3, 4, 5]) arr2 = np.array([0, 1, 2, 3, 4, 5, 6, 7]) print("First array is :\n", arr1) print("Second array is :\n", arr2) # Calculating the outer product ans = np.outer(arr1, arr2) print("Outer Product of these vectors are:\n", ans)

**Output**

First array is : [-2 -1 0 1 2 3 4 5] Second array is : [0 1 2 3 4 5 6 7] Outer Product of these vectors are: [[ 0 -2 -4 -6 -8 -10 -12 -14] [ 0 -1 -2 -3 -4 -5 -6 -7] [ 0 0 0 0 0 0 0 0] [ 0 1 2 3 4 5 6 7] [ 0 2 4 6 8 10 12 14] [ 0 3 6 9 12 15 18 21] [ 0 4 8 12 16 20 24 28] [ 0 5 10 15 20 25 30 35]]

**Explanation**

First, we have created two arrays. Then we printed those two arrays. Then we called numpy.outer() to get the outer vector product. The output is produced using the **np.outer()** method.

**Find the product of characters using an outer() method**

What if we take two arrays, one has characters, and one has integers?

# Program to find outer() when the given product has characters: import numpy as np # Declaring the first array arr1 = np.array(['a', 'b', 'c', 'd'], dtype=object) arr2 = np.array([1, 2, 3, 4]) print("First array is :\n", arr1) print("Second array is :\n", arr2) # Calculating the outer product ans = np.outer(arr1, arr2) print("Outer Product of these vectors are:\n", ans)

**Output**

First array is : ['a' 'b' 'c' 'd'] Second array is : [1 2 3 4] Outer Product of these vectors are: [['a' 'aa' 'aaa' 'aaaa'] ['b' 'bb' 'bbb' 'bbbb'] ['c' 'cc' 'ccc' 'cccc'] ['d' 'dd' 'ddd' 'dddd']]

**Explanation**

In this example, we first created a character-type vector and one vector containing numeric values.

In the next step, we want to calculate the outer vector product of these two different variable-type vectors.

When we call this, we can see a different result. As per the string rule, when we multiply any character/string with any number, we get many copies of that character or string. As we can see, a*1=a, a*2=aa, and so on.

That is it for the np.outer() method.