The outer() function helps you combine two lists or arrays by applying a math operation between every pair of elements. It makes a big table of results.
When you want to multiply every number in one list by every number in another list.
When you need to find all possible products between two sets of numbers.
When comparing two sets of values pairwise with a custom operation.
When creating a grid of results from two input arrays for analysis or visualization.
Syntax
NumPy
numpy.outer(a, b)
# a and b are input arrays# returns a 2D array with the outer product or operation result
The inputs a and b can be lists or numpy arrays.
The output is always a 2D array where each element is the operation applied to pairs from a and b.
Examples
This multiplies each element of [1, 2] by each element of [3, 4].
NumPy
import numpy as np
np.outer([1, 2], [3, 4])
Shows multiplication with zeros and ones, useful to understand how outer works.
NumPy
np.outer([1, 0], [0, 1])
Works even if the second array has one element, repeating the operation.
NumPy
np.outer([1, 2, 3], [4])
Sample Program
This program multiplies each number in array1 by each number in array2 and prints the 2D result.
NumPy
import numpy as np
# Two simple arrays
array1 = [1, 2, 3]
array2 = [4, 5]
# Calculate outer product
result = np.outer(array1, array2)
print("Outer product result:")
print(result)
OutputSuccess
Important Notes
The outer() function always returns a 2D array, even if inputs are 1D.
You can use outer() with any operation by combining it with other numpy functions, but by default it does multiplication.
Summary
outer() creates a 2D grid by combining every element of two arrays.
It is useful for pairwise multiplication or other operations between two sets of numbers.
The output is always a 2D array showing all combinations.
Practice
(1/5)
1. What does the numpy.outer() function do with two input arrays?
easy
A. It concatenates the two arrays into one.
B. It adds the two arrays element-wise.
C. It returns the dot product of the two arrays.
D. It computes the outer product, combining every element of the first array with every element of the second array.
Solution
Step 1: Understand the purpose of numpy.outer()
The function takes two arrays and pairs each element of the first array with each element of the second array.
Step 2: Identify the output type
The result is a 2D array showing all combinations, which is the outer product.
Final Answer:
It computes the outer product, combining every element of the first array with every element of the second array. -> Option D
Quick Check:
Outer product = combine all pairs [OK]
Hint: Outer product pairs all elements from both arrays [OK]
Common Mistakes:
Confusing outer product with dot product
Thinking it adds arrays element-wise
Assuming it concatenates arrays
2. Which of the following is the correct syntax to compute the outer product of arrays a and b using numpy?
easy
A. numpy.outer(a, b)
B. numpy.outerproduct(a, b)
C. numpy.outer(a * b)
D. numpy.outer(a + b)
Solution
Step 1: Recall the function name and parameters
The correct function is numpy.outer() and it takes two arrays as separate arguments.
Step 2: Check the options for correct syntax
Only numpy.outer(a, b) matches the correct function call with two arguments.
Final Answer:
numpy.outer(a, b) -> Option A
Quick Check:
Correct function call = numpy.outer(a, b) [OK]
Hint: Use numpy.outer(array1, array2) with two arguments [OK]
Common Mistakes:
Using wrong function name like outerproduct
Passing one combined argument instead of two
Using addition or multiplication inside outer()
3. What is the output of the following code?
import numpy as np
x = np.array([1, 2])
y = np.array([3, 4])
result = np.outer(x, y)
print(result)
medium
A. [[3 6]
[4 8]]
B. [[3 4]
[6 8]]
C. [[4 6]
[8 12]]
D. [[1 2]
[3 4]]
Solution
Step 1: Calculate outer product manually
Multiply each element of x by each element of y: 1*3=3, 1*4=4 2*3=6, 2*4=8
Step 2: Form the 2D array
Arrange results as rows for each element of x: [[3, 4], [6, 8]]
Final Answer:
[[3 4]
[6 8]] -> Option B
Quick Check:
Outer product matches [[3 4], [6 8]] [OK]
Hint: Multiply each element of first array by all in second [OK]
Common Mistakes:
Mixing row and column order
Confusing with dot product output
Swapping elements of arrays
4. What is the output of the following code?
import numpy as np
x = np.array([1, 2, 3])
y = 5
result = np.outer(x, y)
print(result)
medium
A. [[5]
[10]
[15]]
B. [[5 10 15]]
C. [[1 2 3]
[5]]
D. Throws an error
Solution
Step 1: np.outer() handles scalar second argument
It treats y=5 as a length-1 array, producing a (3,1) shaped array.
Step 2: Compute the products
[[1*5], [2*5], [3*5]] = [[5], [10], [15]]
Final Answer:
[[5]
[10]
[15]] -> Option A
Quick Check:
Scalar second arg -> column vector [OK]
Hint: np.outer accepts scalars, treating as 1-element array [OK]
Common Mistakes:
Thinking scalars cause errors
Expecting row vector instead of column
Confusing with concatenation
5. You have two arrays:
a = np.array([1, 0, 2])
b = np.array([3, np.nan])
You want to create a 2D array where each element is the product of elements from a and b, but you want to ignore zeros in a (replace their entire row with zeros). Which code correctly uses numpy.outer() and post-processing to achieve this?
hard
A. result = np.outer(a, b)
result[:, b == 0] = 0
B. result = np.outer(a, b)
result[a != 0, :] = 0
C. result = np.outer(a, b)
result[a == 0, :] = 0
D. result = np.outer(a, b)
result[b == 0, :] = 0
Solution
Step 1: Compute outer product
Using np.outer(a, b) creates a 2D array with all products.
Step 2: Replace rows where a is zero with zeros
Use boolean indexing result[a == 0, :] = 0 to zero out rows corresponding to zero elements in a.
Final Answer:
result = np.outer(a, b)
result[a == 0, :] = 0 -> Option C
Quick Check:
Zero rows where a is zero [OK]
Hint: Zero rows where a is zero using boolean indexing [OK]
Common Mistakes:
Zeroing columns instead of rows
Using wrong condition for zeroing
Confusing axis in indexing
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.