Bird
0
0

Given a 2D array arr, you want to flatten it and then multiply each element by 2 without changing the original array. Which code snippet achieves this correctly?

hard📝 Application Q9 of 15
NumPy - Array Manipulation
Given a 2D array arr, you want to flatten it and then multiply each element by 2 without changing the original array. Which code snippet achieves this correctly?
Aflat = arr.flatten() arr[0,0] = arr[0,0] * 2
Bflat = arr.ravel() flat *= 2
Cflat = arr.ravel() flat[0] = flat[0] * 2
Dflat = arr.flatten() flat = flat * 2
Step-by-Step Solution
Solution:
  1. Step 1: Identify copy vs view

    flatten() returns a copy, so modifying flat does not affect arr. ravel() may return a view, so changes could affect arr.
  2. Step 2: Check each option

    flat = arr.ravel() flat *= 2 modifies flat but if flat is a view, original changes. flat = arr.flatten() flat = flat * 2 safely modifies copy. flat = arr.ravel() flat[0] = flat[0] * 2 modifies only one element, but if view, original changes. flat = arr.flatten() arr[0,0] = arr[0,0] * 2 modifies original array directly.
  3. Final Answer:

    Use flatten() to get a copy and multiply safely. -> Option D
  4. Quick Check:

    flatten() safe for independent modification [OK]
Quick Trick: Use flatten() to avoid changing original when modifying flattened array [OK]
Common Mistakes:
  • Using ravel() and unintentionally modifying original
  • Modifying original array instead of copy
  • Assuming ravel() always returns copy

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More NumPy Quizzes