Bird
Raised Fist0
NumPydata~10 mins

In-place operations for memory efficiency 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 add 5 to each element of the numpy array in-place.

NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
arr [1]= 5
print(arr)
Drag options to blanks, or click blank then click option'
A*
B-
C+
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using = instead of += which creates a new array.
Using * or / which multiply or divide instead of adding.
2fill in blank
medium

Complete the code to multiply each element of the numpy array by 3 in-place.

NumPy
import numpy as np
arr = np.array([2, 4, 6])
arr [1]= 3
print(arr)
Drag options to blanks, or click blank then click option'
A+
B/
C-
D*
Attempts:
3 left
💡 Hint
Common Mistakes
Using = instead of *= which creates a new array.
Using + or - which add or subtract instead of multiplying.
3fill in blank
hard

Fix the error in the code to subtract 2 from each element of the numpy array in-place.

NumPy
import numpy as np
arr = np.array([10, 20, 30])
arr [1]= 2
print(arr)
Drag options to blanks, or click blank then click option'
A-=
B+=
C*=
D/=
Attempts:
3 left
💡 Hint
Common Mistakes
Using = instead of -= which creates a new array.
Using += which adds instead of subtracting.
4fill in blank
hard

Fill both blanks to divide each element of the numpy array by 4 in-place and then print the array.

NumPy
import numpy as np
arr = np.array([8, 16, 24])
arr [1]= [2]
print(arr)
Drag options to blanks, or click blank then click option'
A/
B*
C4
D2
Attempts:
3 left
💡 Hint
Common Mistakes
Using * instead of / which multiplies instead of dividing.
Using 2 instead of 4 which changes the division factor.
5fill in blank
hard

Fill all three blanks to create a numpy array, add 10 in-place, and then multiply by 2 in-place.

NumPy
import numpy as np
arr = np.array([1])
arr [2]= 10
arr [3]= 2
print(arr)
Drag options to blanks, or click blank then click option'
A[5, 10, 15]
B+=
C*=
D[1, 2, 3]
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong list for the array creation.
Using = instead of += or *= which creates new arrays.
Mixing up the order of operations.

Practice

(1/5)
1. What is the main benefit of using in-place operations in numpy arrays?
easy
A. They convert arrays to lists automatically.
B. They create a new array every time, increasing memory usage.
C. They update the array directly, saving memory and time.
D. They slow down the computation but improve accuracy.

Solution

  1. Step 1: Understand in-place operation meaning

    In-place operations modify the original array without making a copy.
  2. Step 2: Identify benefits of in-place operations

    Modifying the array directly saves memory and speeds up processing.
  3. Final Answer:

    They update the array directly, saving memory and time. -> Option C
  4. Quick Check:

    In-place = save memory and time [OK]
Hint: In-place means change original array, no new copy [OK]
Common Mistakes:
  • Thinking in-place creates new arrays
  • Assuming in-place slows down code
  • Confusing in-place with data type conversion
2. Which of the following is the correct syntax to add 5 to every element of a numpy array arr in-place?
easy
A. arr += 5
B. arr = arr + 5
C. arr.add(5)
D. arr = arr.add(5)

Solution

  1. Step 1: Identify in-place addition syntax

    The operator += modifies the array in-place by adding a value.
  2. Step 2: Compare options

    arr = arr + 5 creates a new array, options C and D are invalid numpy syntax for in-place add.
  3. Final Answer:

    arr += 5 -> Option A
  4. Quick Check:

    Use += for in-place addition [OK]
Hint: Use += to add in-place, not = arr + value [OK]
Common Mistakes:
  • Using = arr + 5 which creates a new array
  • Trying arr.add(5) which is not a numpy method
  • Assigning arr = arr.add(5) which causes error
3. What will be the output of the following code?
import numpy as np
arr = np.array([1, 2, 3])
arr *= 2
print(arr)
medium
A. [1 2 3]
B. [2 4 6]
C. [3 4 5]
D. Error

Solution

  1. Step 1: Understand the operation arr *= 2

    This multiplies each element of arr by 2 in-place, changing arr to [2, 4, 6].
  2. Step 2: Check the print output

    Printing arr shows the updated array [2 4 6].
  3. Final Answer:

    [2 4 6] -> Option B
  4. Quick Check:

    arr *= 2 doubles elements in-place [OK]
Hint: *= doubles array elements in-place [OK]
Common Mistakes:
  • Expecting original array unchanged
  • Confusing *= with creating new array
  • Thinking it causes an error
4. Identify the error in this code snippet that tries to add 10 to each element of arr in-place:
import numpy as np
arr = np.array([4, 5, 6])
arr = arr.add(10)
print(arr)
medium
A. All of the above.
B. The operation arr = arr.add(10) creates a new array, not in-place.
C. The correct in-place addition uses arr += 10.
D. The method add does not exist for numpy arrays.

Solution

  1. Step 1: Check if numpy arrays have add() method

    NumPy arrays do not have an add method; this causes an AttributeError.
  2. Step 2: Understand in-place addition syntax

    Using arr = arr.add(10) is invalid and does not perform in-place addition; correct syntax is arr += 10.
  3. Step 3: Combine observations

    All points are true: method doesn't exist, code creates new array if it did, and correct syntax is arr += 10.
  4. Final Answer:

    All of the above. -> Option A
  5. Quick Check:

    Use arr += 10; no arr.add() method [OK]
Hint: No arr.add(); use arr += 10 for in-place add [OK]
Common Mistakes:
  • Trying to use arr.add() method
  • Assigning arr = arr + 10 expecting in-place
  • Ignoring AttributeError from invalid method
5. You have a large numpy array data and want to normalize it by subtracting the mean and dividing by the standard deviation in-place to save memory. Which code snippet correctly does this?
hard
A. mean = data.mean() data = (data - mean) / data.std()
B. data = data - data.mean() data = data / data.std()
C. data.subtract(data.mean()) data.divide(data.std())
D. mean = data.mean() data -= mean data /= data.std()

Solution

  1. Step 1: Understand in-place normalization steps

    Subtract mean and divide by std in-place to avoid new arrays.
  2. Step 2: Analyze options for in-place operations

    mean = data.mean() data -= mean data /= data.std() uses data -= mean and data /= data.std(), which modify data directly.
  3. Step 3: Identify why other options are incorrect

    Options A and B assign new arrays to data, not in-place. data.subtract(data.mean()) data.divide(data.std()) uses invalid methods.
  4. Final Answer:

    mean = data.mean() data -= mean data /= data.std() -> Option D
  5. Quick Check:

    Use -= and /= for in-place normalization [OK]
Hint: Use -= and /= to normalize array in-place [OK]
Common Mistakes:
  • Assigning new arrays instead of in-place changes
  • Using non-existent methods like subtract() on numpy arrays
  • Forgetting to compute mean and std once before operations
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