Bird
Raised Fist0
NumPydata~10 mins

Convolution with np.convolve() in NumPy - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to perform convolution of two arrays using numpy.

NumPy
import numpy as np

result = np.[1](a, b)
print(result)
Drag options to blanks, or click blank then click option'
Adot
Bconvolve
Cmultiply
Dadd
Attempts:
3 left
💡 Hint
Common Mistakes
Using np.dot instead of np.convolve
Using np.multiply which does element-wise multiplication
Using np.add which sums arrays element-wise
2fill in blank
medium

Complete the code to specify the convolution mode as 'valid'.

NumPy
import numpy as np

result = np.convolve(a, b, mode=[1])
print(result)
Drag options to blanks, or click blank then click option'
A'valid'
B'same'
C'full'
D'extend'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'full' mode which returns the complete convolution
Using 'same' mode which returns output the same size as first array
Using an invalid mode string
3fill in blank
hard

Fix the error in the code to correctly perform convolution.

NumPy
import numpy as np

a = [1, 2, 3]
b = [0, 1, 0.5]

result = np.convolve([1], b)
print(result)
Drag options to blanks, or click blank then click option'
Aa
Bb
Cresult
Dnp
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping the order of arrays
Passing the result variable instead of input arrays
Passing the numpy module instead of arrays
4fill in blank
hard

Fill both blanks to create a dictionary with words as keys and their lengths as values for words longer than 3 characters.

NumPy
words = ['data', 'science', 'ai', 'ml', 'python']
lengths = { [1]: [2] for word in words if len(word) > 3 }
print(lengths)
Drag options to blanks, or click blank then click option'
Aword
Blen(word)
Cword.upper()
Dlen
Attempts:
3 left
💡 Hint
Common Mistakes
Using the length as key instead of value
Using word.upper() as key which changes the word
Using len function object instead of calling it
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase words as keys, their lengths as values, only for words longer than 3 characters.

NumPy
words = ['data', 'science', 'ai', 'ml', 'python']
lengths = { [1]: [2] for word in words if len(word) [3] 3 }
print(lengths)
Drag options to blanks, or click blank then click option'
Aword.upper()
Blen(word)
C>
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase words as keys
Using '<' instead of '>' in condition
Using the function len without parentheses

Practice

(1/5)
1. What does the np.convolve() function do in numpy?
easy
A. It combines two arrays to produce a third array showing how one affects the other.
B. It sorts an array in ascending order.
C. It finds the maximum value in an array.
D. It reshapes an array into a different dimension.

Solution

  1. Step 1: Understand the purpose of convolution

    Convolution combines two arrays to analyze how one array modifies or overlaps with the other.
  2. Step 2: Match this with np.convolve() function

    In numpy, np.convolve() performs this combination and returns the resulting array.
  3. Final Answer:

    It combines two arrays to produce a third array showing how one affects the other. -> Option A
  4. Quick Check:

    np.convolve() = combine arrays [OK]
Hint: Convolution means combining arrays to see overlap effects [OK]
Common Mistakes:
  • Confusing convolution with sorting or reshaping
  • Thinking it finds max or min values
  • Assuming it changes array shape without combining
2. Which of the following is the correct syntax to convolve two arrays a and b using numpy?
easy
A. np.convolve(a, b, mode='sum')
B. np.convolve(a + b)
C. np.convolve(a * b)
D. np.convolve(a, b)

Solution

  1. Step 1: Recall the np.convolve() function signature

    The function requires two arrays as separate arguments: np.convolve(a, b).
  2. Step 2: Check each option

    np.convolve(a, b) correctly passes two arrays. Options B and D use invalid expressions inside convolve. np.convolve(a, b, mode='sum') uses an invalid mode value.
  3. Final Answer:

    np.convolve(a, b) -> Option D
  4. Quick Check:

    Correct syntax = np.convolve(a, b) [OK]
Hint: np.convolve takes two arrays as separate arguments [OK]
Common Mistakes:
  • Passing combined arrays instead of two separate arguments
  • Using invalid mode values
  • Using operators inside np.convolve() argument
3. What is the output of the following code?
import numpy as np
x = np.array([1, 2, 3])
k = np.array([0, 1])
result = np.convolve(x, k)
print(result)
medium
A. [0 1 2]
B. [1 2 3 0]
C. [0 1 2 3]
D. [1 2 3]

Solution

  1. Step 1: Understand convolution of x and k

    Convolution slides kernel k over x, multiplying and summing overlapping elements. Here, x=[1,2,3], k=[0,1].
  2. Step 2: Calculate convolution manually

    Output length = len(x)+len(k)-1 = 3+2-1=4.
    Values:
    Index 0: 1*0=0
    Index 1: 1*1 + 2*0=1
    Index 2: 2*1 + 3*0=2
    Index 3: 3*1=3
    Result: [0, 1, 2, 3]
  3. Final Answer:

    [0 1 2 3] -> Option C
  4. Quick Check:

    Convolution length = 4, values match [OK]
Hint: Output length = len(a)+len(b)-1 for default mode [OK]
Common Mistakes:
  • Forgetting output length formula
  • Mixing up order of multiplication
  • Assuming output length equals input length
4. The following code throws an error. What is the mistake?
import numpy as np
x = np.array([1, 2, 3])
k = np.array([1, 0])
result = np.convolve(x, k, mode='middle')
print(result)
medium
A. Missing import statement for np.convolve()
B. 'middle' is not a valid mode for np.convolve()
C. np.convolve() requires integer arrays only
D. Arrays x and k must be the same length

Solution

  1. Step 1: Check valid modes for np.convolve()

    Valid modes are 'full', 'valid', and 'same'. 'middle' is not valid.
  2. Step 2: Identify error cause

    Using mode='middle' causes a ValueError because it's unsupported.
  3. Final Answer:

    'middle' is not a valid mode for np.convolve() -> Option B
  4. Quick Check:

    Valid modes = full, valid, same [OK]
Hint: Use only 'full', 'valid', or 'same' modes in np.convolve() [OK]
Common Mistakes:
  • Using unsupported mode strings
  • Assuming arrays must be same length
  • Thinking np.convolve needs special imports
5. You want to smooth a noisy signal stored in array signal using a simple moving average kernel of length 3. Which code correctly applies convolution to achieve this smoothing?
hard
A. kernel = np.array([1, 1, 1]) smoothed = np.convolve(signal, kernel, mode='valid') / 3
B. kernel = np.array([1, 1, 1]) smoothed = np.convolve(signal, kernel, mode='full') * 3
C. kernel = np.array([1, 0, 1]) smoothed = np.convolve(signal, kernel, mode='same') / 2
D. kernel = np.array([1, 1, 1]) smoothed = np.convolve(signal, kernel, mode='valid') * 3

Solution

  1. Step 1: Define the moving average kernel

    A simple moving average kernel of length 3 is [1, 1, 1].
  2. Step 2: Apply convolution and normalize

    Convolve signal with kernel using mode='valid' to avoid edge effects, then divide by 3 to average.
  3. Final Answer:

    kernel = np.array([1, 1, 1]) smoothed = np.convolve(signal, kernel, mode='valid') / 3 -> Option A
  4. Quick Check:

    Moving average = sum/3 with valid mode [OK]
Hint: Use kernel of ones and divide by length for moving average [OK]
Common Mistakes:
  • Forgetting to divide by kernel length
  • Using wrong kernel values
  • Using mode='full' causing longer output
  • Multiplying instead of dividing for average
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard