Bird
Raised Fist0
NumPydata~10 mins

Understanding ufunc methods (reduce, accumulate) in NumPy - Interactive Quiz & Practice

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

Complete the code to calculate the sum of all elements in the array using a ufunc method.

NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
result = np.add.[1](arr)
print(result)
Drag options to blanks, or click blank then click option'
Areduce
Baccumulate
Couter
Dreduceat
Attempts:
3 left
💡 Hint
Common Mistakes
Using accumulate instead of reduce returns intermediate sums, not the total sum.
Using outer or reduceat methods which have different purposes.
2fill in blank
medium

Complete the code to get the cumulative sum of elements in the array using a ufunc method.

NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
cum_sum = np.add.[1](arr)
print(cum_sum)
Drag options to blanks, or click blank then click option'
Aouter
Breduceat
Caccumulate
Dreduce
Attempts:
3 left
💡 Hint
Common Mistakes
Using reduce returns only the final sum, not intermediate sums.
Using outer or reduceat which do not produce cumulative sums.
3fill in blank
hard

Fix the error in the code to correctly compute the cumulative product of the array elements.

NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
cum_prod = np.multiply.[1](arr)
print(cum_prod)
Drag options to blanks, or click blank then click option'
Aaccumulate
Breduce
Creduceat
Douter
Attempts:
3 left
💡 Hint
Common Mistakes
Using reduce returns only the final product, not intermediate products.
Using reduceat or outer which are not for cumulative operations.
4fill in blank
hard

Fill both blanks to create a dictionary of cumulative sums for each number greater than 2 in the list.

NumPy
import numpy as np
numbers = [1, 3, 5, 2, 4]
cum_sums = {n: np.add.[1](np.arange(1, n+1)) for n in numbers if n [2] 2}
print(cum_sums)
Drag options to blanks, or click blank then click option'
Aaccumulate
B>
C>=
Dreduce
Attempts:
3 left
💡 Hint
Common Mistakes
Using reduce instead of accumulate returns only the total sum, not cumulative sums.
Using '>=' includes numbers equal to 2, which is not required.
5fill in blank
hard

Fill all three blanks to create a dictionary of final products for numbers less than or equal to 4 using a ufunc method.

NumPy
import numpy as np
numbers = [1, 3, 5, 2, 4]
final_products = {n: np.multiply.[1](np.arange(1, n+1)) for n in numbers if n [2] 4 and n [3] 0}
print(final_products)
Drag options to blanks, or click blank then click option'
Aaccumulate
B<=
C!=
Dreduce
Attempts:
3 left
💡 Hint
Common Mistakes
Using accumulate returns intermediate products, not the final one.
Using '<' instead of '<=' excludes 4, which should be included.
Using '==' instead of '!=' includes zero, which should be excluded.

Practice

(1/5)
1. What does the reduce method of a NumPy ufunc do?
easy
A. It returns an array showing the intermediate results of the ufunc operation.
B. It combines all elements of an array into a single result using the ufunc operation.
C. It applies the ufunc element-wise without combining elements.
D. It sorts the array before applying the ufunc.

Solution

  1. Step 1: Understand the purpose of reduce

    The reduce method applies the ufunc cumulatively to the elements of the array, reducing it to a single value.
  2. Step 2: Compare with other methods

    Unlike accumulate, which returns intermediate results, reduce returns only the final combined result.
  3. Final Answer:

    It combines all elements of an array into a single result using the ufunc operation. -> Option B
  4. Quick Check:

    reduce = single combined result [OK]
Hint: Reduce gives one final result by combining all elements [OK]
Common Mistakes:
  • Confusing reduce with accumulate
  • Thinking reduce returns intermediate steps
  • Assuming reduce sorts the array
2. Which of the following is the correct syntax to use the accumulate method of the NumPy add ufunc on array a?
easy
A. np.add.accumulate(a)
B. np.accumulate.add(a)
C. a.accumulate(np.add)
D. np.add.reduce(a)

Solution

  1. Step 1: Recall ufunc method syntax

    NumPy ufuncs like add have methods such as accumulate accessed as np.add.accumulate(array).
  2. Step 2: Check each option

    np.add.accumulate(a) matches the correct syntax. Options B and C have wrong order or method calls. np.add.reduce(a) uses reduce, not accumulate.
  3. Final Answer:

    np.add.accumulate(a) -> Option A
  4. Quick Check:

    ufunc.method(array) = correct syntax [OK]
Hint: Use ufunc.method(array), e.g., np.add.accumulate(a) [OK]
Common Mistakes:
  • Swapping method and ufunc names
  • Calling accumulate on array instead of ufunc
  • Confusing reduce and accumulate syntax
3. What is the output of the following code?
import numpy as np
arr = np.array([1, 2, 3, 4])
result = np.multiply.accumulate(arr)
print(result)
medium
A. [1 3 6 10]
B. [1 2 3 4]
C. [24]
D. [1 2 6 24]

Solution

  1. Step 1: Understand multiply.accumulate

    This method returns intermediate cumulative products: first element, first*second, first*second*third, etc.
  2. Step 2: Calculate step-by-step

    1, 1*2=2, 2*3=6, 6*4=24, so output is [1, 2, 6, 24].
  3. Final Answer:

    [1 2 6 24] -> Option D
  4. Quick Check:

    Cumulative product = [1 2 6 24] [OK]
Hint: Accumulate shows stepwise results, here cumulative product [OK]
Common Mistakes:
  • Thinking accumulate returns only final product
  • Confusing accumulate with reduce
  • Miscomputing intermediate products
4. The following code throws an error. What is the cause?
import numpy as np
arr = np.array([1, 2, 3])
result = np.add.accumulate(arr, axis=1)
print(result)
medium
A. The add ufunc cannot be used with accumulate.
B. The accumulate method does not accept an axis argument.
C. The array is 1D, so axis=1 is invalid.
D. The array elements are not integers.

Solution

  1. Step 1: Check array dimensions

    The array arr is 1-dimensional with shape (3,).
  2. Step 2: Understand axis parameter

    Axis=1 refers to the second dimension, which does not exist in a 1D array, causing an error.
  3. Final Answer:

    The array is 1D, so axis=1 is invalid. -> Option C
  4. Quick Check:

    Axis must exist in array shape [OK]
Hint: Axis must be valid for array dimensions [OK]
Common Mistakes:
  • Assuming accumulate lacks axis parameter
  • Ignoring array shape when setting axis
  • Blaming ufunc or data type incorrectly
5. Given a 2D array arr = np.array([[1, 2], [3, 4]]), what is the output of np.add.reduce(arr, axis=0)?
hard
A. [4 6]
B. [1 2 3 4]
C. [10]
D. [1 5]

Solution

  1. Step 1: Understand reduce with axis

    Using reduce with axis=0 applies the ufunc cumulatively down each column.
  2. Step 2: Calculate column-wise sums

    First column: 1 + 3 = 4; second column: 2 + 4 = 6.
  3. Final Answer:

    [4 6] -> Option A
  4. Quick Check:

    Sum columns with reduce(axis=0) = [4 6] [OK]
Hint: Reduce with axis sums along that axis [OK]
Common Mistakes:
  • Confusing axis=0 with axis=1
  • Expecting flattened sum instead of column sums
  • Mixing accumulate and reduce outputs
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