Bird
Raised Fist0
NumPydata~5 mins

np.vectorize() for custom functions in NumPy - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does np.vectorize() do in NumPy?

np.vectorize() turns a regular Python function into one that can be applied element-wise to arrays, like a loop but simpler to write.

Click to reveal answer
beginner
How does np.vectorize() help with custom functions?

It lets you apply your own function to each element of an array without writing explicit loops.

Click to reveal answer
intermediate
What is a limitation of np.vectorize() compared to true vectorized NumPy functions?

np.vectorize() is basically a loop under the hood, so it is not faster than a Python loop. It just makes code cleaner.

Click to reveal answer
beginner
Example: How to use np.vectorize() to square each element in an array using a custom function?
<pre>import numpy as np

def square(x):
    return x * x

vec_square = np.vectorize(square)
arr = np.array([1, 2, 3])
result = vec_square(arr)
print(result)  # Output: [1 4 9]</pre>
Click to reveal answer
intermediate
Can np.vectorize() handle functions with multiple inputs?

Yes, you can pass multiple arrays as arguments, and np.vectorize() will apply the function element-wise across all inputs.

Click to reveal answer
What is the main purpose of np.vectorize()?
ATo apply a function element-wise to arrays
BTo speed up NumPy operations
CTo create new NumPy arrays
DTo sort arrays
Does np.vectorize() improve performance compared to a Python loop?
AYes, it is much faster
BOnly for large arrays
CNo, it is similar in speed
DIt depends on the array size
Which of these is a correct way to create a vectorized function from def add(x, y): return x + y?
Avec_add = np.add(add)
Bvec_add = np.vectorize(add)
Cvec_add = np.vectorize(x + y)
Dvec_add = np.vectorize()
What happens if you pass multiple arrays to a vectorized function?
AIt applies the function element-wise across all arrays
BIt only uses the first array
CIt raises an error
DIt concatenates the arrays
Which statement is true about np.vectorize()?
AIt replaces all NumPy vectorized functions
BIt only works with built-in NumPy functions
CIt always improves code speed
DIt is a convenience wrapper for element-wise operations
Explain how np.vectorize() works and when you might use it.
Think about applying your own function to each item in a list or array.
You got /3 concepts.
    Describe a simple example using np.vectorize() with a custom function that takes two inputs.
    Imagine adding or multiplying two arrays element by element.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of np.vectorize() in numpy?
      easy
      A. To apply a custom function element-wise on numpy arrays without explicit loops
      B. To create random numbers in numpy arrays
      C. To sort numpy arrays quickly
      D. To reshape numpy arrays into different dimensions

      Solution

      1. Step 1: Understand the role of np.vectorize()

        np.vectorize() takes a function that works on single values and makes it work on arrays element-wise.
      2. Step 2: Compare with other numpy functions

        It is not used for random number generation, sorting, or reshaping arrays, which are handled by other numpy functions.
      3. Final Answer:

        To apply a custom function element-wise on numpy arrays without explicit loops -> Option A
      4. Quick Check:

        np.vectorize() = element-wise function application [OK]
      Hint: Remember: vectorize applies functions element-wise on arrays [OK]
      Common Mistakes:
      • Confusing vectorize with random number generation
      • Thinking vectorize reshapes arrays
      • Assuming vectorize sorts arrays
      2. Which of the following is the correct way to create a vectorized version of a function f using numpy?
      easy
      A. vfunc = np.vectorize[f]
      B. vfunc = np.vectorize(f)
      C. vfunc = np.vectorize.f()
      D. vfunc = np.vectorize->f

      Solution

      1. Step 1: Recall the syntax of np.vectorize

        The correct syntax is to call np.vectorize as a function with the target function as argument: np.vectorize(f).
      2. Step 2: Check the other options for syntax errors

        Options A, C, and D use incorrect syntax like square brackets, dot notation, or arrows which are invalid in Python.
      3. Final Answer:

        vfunc = np.vectorize(f) -> Option B
      4. Quick Check:

        Correct syntax uses parentheses: np.vectorize(f) [OK]
      Hint: Use parentheses, not brackets or dots, with np.vectorize [OK]
      Common Mistakes:
      • Using square brackets instead of parentheses
      • Trying to access vectorize as an attribute
      • Using invalid arrow syntax
      3. What will be the output of the following code?
      import numpy as np
      def square_plus_one(x):
          return x**2 + 1
      vfunc = np.vectorize(square_plus_one)
      arr = np.array([1, 2, 3])
      result = vfunc(arr)
      print(result)
      medium
      A. [2 5 10]
      B. [1 4 9]
      C. [2 3 4]
      D. [1 2 3]

      Solution

      1. Step 1: Understand the function logic

        The function square_plus_one returns x**2 + 1. For inputs 1, 2, 3, the outputs are 1^2+1=2, 2^2+1=5, 3^2+1=10.
      2. Step 2: Apply vectorized function on array

        Using np.vectorize, the function applies element-wise on the array [1, 2, 3], producing [2, 5, 10].
      3. Final Answer:

        [2 5 10] -> Option A
      4. Quick Check:

        Element-wise square plus one = [2 5 10] [OK]
      Hint: Apply function to each element, then collect results [OK]
      Common Mistakes:
      • Forgetting to add 1 after squaring
      • Confusing output with input array
      • Assuming vectorize changes function logic
      4. Identify the error in this code snippet:
      import numpy as np
      def add_five(x):
          return x + 5
      vfunc = np.vectorize(add_five)
      arr = [1, 2, 3]
      result = vfunc(arr)
      print result
      medium
      A. np.vectorize cannot be used with functions that add numbers
      B. The function add_five should return x * 5 instead of x + 5
      C. The print statement is missing parentheses
      D. The input array should be a numpy array, not a list

      Solution

      1. Step 1: Check the print statement syntax

        In Python 3, print is a function and requires parentheses like print(result). print result causes a SyntaxError.
      2. Step 2: Verify other parts of the code

        The function logic is correct, np.vectorize works fine with addition functions, and input lists are accepted by np.vectorize.
      3. Final Answer:

        The print statement is missing parentheses -> Option C
      4. Quick Check:

        print requires parentheses in Python 3 [OK]
      Hint: print requires parentheses in Python 3 [OK]
      Common Mistakes:
      • Forgetting parentheses on print statement
      • Assuming list input is invalid for vectorize
      • Changing function logic unnecessarily
      5. You want to apply a custom function that returns 'even' if a number is even and 'odd' if it is odd, on a numpy array. Which code correctly uses np.vectorize() to achieve this?
      def even_odd(x):
          if x % 2 == 0:
              return 'even'
          else:
              return 'odd'
      arr = np.array([1, 2, 3, 4])
      # What next?
      hard
      A. result = np.apply_along_axis(even_odd, 1, arr) print(result)
      B. result = even_odd(arr) print(result)
      C. vfunc = np.vectorize(even_odd) result = even_odd(arr.tolist()) print(result)
      D. vfunc = np.vectorize(even_odd) result = vfunc(arr) print(result)

      Solution

      1. Step 1: Vectorize the custom function

        Use np.vectorize(even_odd) to create a vectorized version that works element-wise on arrays.
      2. Step 2: Apply vectorized function on numpy array

        Call the vectorized function with the numpy array arr to get the result array of 'even'/'odd' strings.
      3. Step 3: Check other options

        result = even_odd(arr) print(result) fails because even_odd does not support array input directly. vfunc = np.vectorize(even_odd) result = even_odd(arr.tolist()) print(result) fails because even_odd does not support list input. result = np.apply_along_axis(even_odd, 1, arr) print(result) fails with axis out of bounds for 1D array.
      4. Final Answer:

        vfunc = np.vectorize(even_odd) result = vfunc(arr) print(result) -> Option D
      5. Quick Check:

        Vectorize then apply on numpy array = vfunc = np.vectorize(even_odd) result = vfunc(arr) print(result) [OK]
      Hint: Vectorize first, then apply on numpy array directly [OK]
      Common Mistakes:
      • Calling function directly on array without vectorize
      • Calling non-vectorized function on list input
      • Using invalid axis in apply_along_axis
      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