Bird
Raised Fist0
NumPydata~10 mins

Controlling copy behavior 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 create a copy of the NumPy array 'a'.

NumPy
import numpy as np

a = np.array([1, 2, 3])
b = a.[1]()
Drag options to blanks, or click blank then click option'
Acopy
Bview
Creshape
Dflatten
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'view()' instead of 'copy()' which does not create a full copy.
Using 'reshape()' or 'flatten()' which change shape but not copy behavior.
2fill in blank
medium

Complete the code to create a view of the NumPy array 'a'.

NumPy
import numpy as np

a = np.array([4, 5, 6])
b = a.[1]()
Drag options to blanks, or click blank then click option'
Aflatten
Bcopy
Cview
Dtranspose
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'copy()' which creates a full independent copy.
Using 'flatten()' or 'transpose()' which change shape or axes.
3fill in blank
hard

Fix the error in the code to create a copy of the array slice.

NumPy
import numpy as np

a = np.array([7, 8, 9, 10])
slice_a = a[1:3]
slice_copy = slice_a.[1]()
Drag options to blanks, or click blank then click option'
Acopy
Breshape
Cview
Dflatten
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'view()' which still references original data.
Using 'reshape()' or 'flatten()' which do not copy data.
4fill in blank
hard

Fill both blanks to create a view and then modify it without affecting the original array.

NumPy
import numpy as np

a = np.array([10, 20, 30, 40])
view_a = a.[1]()
copy_a = view_a.[2]()
copy_a[0] = 99
Drag options to blanks, or click blank then click option'
Aview
Bcopy
Cflatten
Dreshape
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'copy()' for the first blank which creates a copy, not a view.
Using 'view()' for the second blank which does not create an independent copy.
5fill in blank
hard

Fill all three blanks to create a copy of a reshaped array slice.

NumPy
import numpy as np

a = np.arange(12)
slice_a = a[2:10]
reshaped = slice_a.[1]((2, 4))
copy_reshaped = reshaped.[2]()
copy_reshaped[0, 0] = [3]
Drag options to blanks, or click blank then click option'
Areshape
Bcopy
C100
Dview
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'view' instead of 'copy' which modifies original data.
Not reshaping before copying.
Assigning a value that is not an integer.

Practice

(1/5)
1. What does the copy() method do in NumPy arrays?
easy
A. Creates a full separate copy of the array data
B. Creates a new array object sharing the same data
C. Deletes the original array
D. Converts the array to a list

Solution

  1. Step 1: Understand the purpose of copy()

    The copy() method creates a new array with its own separate data, independent of the original array.
  2. Step 2: Compare with view()

    Unlike view(), which shares data, copy() protects the original data by making a full copy.
  3. Final Answer:

    Creates a full separate copy of the array data -> Option A
  4. Quick Check:

    copy() = full separate copy [OK]
Hint: copy() makes a full separate array copy [OK]
Common Mistakes:
  • Confusing copy() with view() sharing data
  • Thinking copy() modifies original array
  • Assuming copy() returns a reference
2. Which of the following is the correct syntax to create a view of a NumPy array a?
easy
A. b = a.view()
B. b = view(a)
C. b = copy(a)
D. b = a.copy()

Solution

  1. Step 1: Recall the method to create a view

    In NumPy, the method to create a view of an array is view(), called on the array object.
  2. Step 2: Check syntax correctness

    Only b = a.view() correctly calls the method on a. Other options are either copy or invalid function calls.
  3. Final Answer:

    b = a.view() -> Option A
  4. Quick Check:

    Use view() method on array [OK]
Hint: Use a.view() to create a view, not copy() [OK]
Common Mistakes:
  • Using copy() instead of view()
  • Calling view() as a standalone function
  • Confusing syntax with copy module
3. What will be the output of the following code?
import numpy as np
x = np.array([1, 2, 3])
y = x.view()
y[0] = 10
print(x)
medium
A. Error
B. [1 2 3]
C. [0 2 3]
D. [10 2 3]

Solution

  1. Step 1: Understand view() shares data

    The variable y is a view of x, so both share the same data buffer.
  2. Step 2: Modify y and check effect on x

    Changing y[0] to 10 changes the shared data, so x[0] also becomes 10.
  3. Final Answer:

    [10 2 3] -> Option D
  4. Quick Check:

    view() shares data, so x changes [OK]
Hint: view() shares data; changes reflect in original [OK]
Common Mistakes:
  • Assuming view() creates independent copy
  • Expecting original array unchanged
  • Confusing view() with copy()
4. Identify the error in the following code snippet:
import numpy as np
arr = np.array([4, 5, 6])
new_arr = arr.copy
new_arr[0] = 0
print(arr)
medium
A. Cannot assign to new_arr[0]
B. copy() does not create a new array
C. Missing parentheses after copy method
D. arr is not a NumPy array

Solution

  1. Step 1: Check method call syntax

    The code uses arr.copy without parentheses, so new_arr is a method reference, not an array.
  2. Step 2: Understand effect of missing parentheses

    Trying to assign new_arr[0] = 0 fails because new_arr is not an array but a method object.
  3. Final Answer:

    Missing parentheses after copy method -> Option C
  4. Quick Check:

    copy() needs parentheses to call [OK]
Hint: Always use parentheses to call copy() method [OK]
Common Mistakes:
  • Forgetting parentheses after copy()
  • Assuming copy is an attribute, not method
  • Expecting copy() to modify original array
5. You have a large NumPy array data and want to modify a small part without affecting the original array to save memory. Which approach is best?
hard
A. Use data.view() and modify the view
B. Use data.copy() and modify the copy
C. Modify data directly
D. Convert data to list and modify

Solution

  1. Step 1: Understand memory and modification needs

    You want to modify part of the array without changing the original, so you need a separate copy.
  2. Step 2: Compare copy() and view() for this case

    view() shares data, so changes affect original. copy() creates independent data, protecting original.
  3. Step 3: Consider memory usage

    Although copy() uses more memory, it is necessary here to avoid changing original data.
  4. Final Answer:

    Use data.copy() and modify the copy -> Option B
  5. Quick Check:

    copy() protects original when modifying [OK]
Hint: copy() protects original; view() shares data [OK]
Common Mistakes:
  • Using view() and unintentionally changing original
  • Modifying original array directly
  • Converting to list wastes memory and speed
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