Bird
Raised Fist0
NumPydata~10 mins

NumPy array vs Python list performance - Interactive Practice

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

Complete the code to import the NumPy library with its common alias.

NumPy
import [1] as np
Drag options to blanks, or click blank then click option'
Anumpy
Bnp
Cnum
Dnpy
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'np' instead of 'numpy' in the import statement.
Using incorrect library names like 'num' or 'npy'.
2fill in blank
medium

Complete the code to create a NumPy array from a Python list.

NumPy
arr = np.[1]([1, 2, 3, 4, 5])
Drag options to blanks, or click blank then click option'
Atolist
Barray
Casarray
Dlist
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'list' which is a Python type, not a NumPy function.
Using 'tolist' which converts arrays to lists, not the other way.
3fill in blank
hard

Fix the error in the code to measure the time taken to sum elements in a Python list.

NumPy
import time
lst = list(range(1000000))
start = time.[1]()
total = sum(lst)
end = time.time()
print(end - start)
Drag options to blanks, or click blank then click option'
Aclock
Bsleep
Ctime
Dperf_counter
Attempts:
3 left
💡 Hint
Common Mistakes
Using time.clock() which is deprecated.
Using time.sleep() which pauses execution.
4fill in blank
hard

Fill both blanks to create a NumPy array and measure the time taken to sum its elements.

NumPy
import time
arr = np.[1](range(1000000))
start = time.[2]()
total = np.sum(arr)
end = time.perf_counter()
print(end - start)
Drag options to blanks, or click blank then click option'
Aarray
Btime
Cperf_counter
Dlist
Attempts:
3 left
💡 Hint
Common Mistakes
Using list instead of array for NumPy arrays.
Using time.time() instead of time.perf_counter() for better precision.
5fill in blank
hard

Fill all three blanks to create a Python list, a NumPy array, and measure their sum times for comparison.

NumPy
import time
lst = list(range(1000000))
arr = np.[1](lst)
start_lst = time.[2]()
sum_lst = sum(lst)
end_lst = time.time()
start_arr = time.[3]()
sum_arr = np.sum(arr)
end_arr = time.perf_counter()
print('List sum time:', end_lst - start_lst)
print('Array sum time:', end_arr - start_arr)
Drag options to blanks, or click blank then click option'
Aarray
Btime
Cperf_counter
Dlist
Attempts:
3 left
💡 Hint
Common Mistakes
Using list instead of array for NumPy array creation.
Using the same timing function for both measurements.

Practice

(1/5)
1. Which of the following is true about NumPy arrays compared to Python lists when working with large numeric data?
easy
A. Python lists use less memory than NumPy arrays for numbers.
B. Python lists are faster for numeric calculations than NumPy arrays.
C. NumPy arrays and Python lists have the same speed for math operations.
D. NumPy arrays perform mathematical operations faster than Python lists.

Solution

  1. Step 1: Understand data structure differences

    NumPy arrays store data in a continuous block of memory optimized for numeric operations, unlike Python lists which store references to objects.
  2. Step 2: Compare performance for math operations

    This memory layout allows NumPy to perform vectorized operations much faster than Python lists, which require looping in Python code.
  3. Final Answer:

    NumPy arrays perform mathematical operations faster than Python lists. -> Option D
  4. Quick Check:

    NumPy arrays faster for math = D [OK]
Hint: NumPy arrays are optimized for math speed, unlike lists. [OK]
Common Mistakes:
  • Thinking Python lists are faster for math
  • Assuming both have same speed
  • Confusing memory usage with speed
2. Which of the following is the correct way to create a NumPy array from a Python list [1, 2, 3]?
easy
A. np.array([1, 2, 3])
B. np.list([1, 2, 3])
C. array([1, 2, 3])
D. np.array{1, 2, 3}

Solution

  1. Step 1: Recall NumPy array creation syntax

    The function to create a NumPy array is np.array() and it takes a list as input.
  2. Step 2: Check each option for syntax correctness

    np.array([1, 2, 3]) uses correct syntax. np.list([1, 2, 3]) uses a non-existent function np.list(). array([1, 2, 3]) misses the np. prefix. np.array{1, 2, 3} uses curly braces which is invalid.
  3. Final Answer:

    np.array([1, 2, 3]) -> Option A
  4. Quick Check:

    Correct NumPy array syntax = A [OK]
Hint: Use np.array() with square brackets for lists. [OK]
Common Mistakes:
  • Using curly braces instead of square brackets
  • Missing np prefix
  • Using non-existent np.list() function
3. What will be the output of the following code?
import numpy as np
import time

lst = list(range(1000000))
arr = np.array(lst)

start = time.time()
sum_lst = sum(lst)
end = time.time()
print(round(end - start, 5))

start = time.time()
sum_arr = np.sum(arr)
end = time.time()
print(round(end - start, 5))
medium
A. The time to sum the list is less than the time to sum the NumPy array.
B. The time to sum the NumPy array is less than the time to sum the list.
C. Both times are exactly the same.
D. The code will raise an error because np.sum cannot sum arrays.

Solution

  1. Step 1: Understand sum operation on list vs NumPy array

    Python's built-in sum() loops over the list in Python code, which is slower. NumPy's np.sum() uses optimized C code for fast summation.
  2. Step 2: Predict timing results

    Because of this optimization, np.sum(arr) runs faster than sum(lst), so the printed time for NumPy sum is less.
  3. Final Answer:

    The time to sum the NumPy array is less than the time to sum the list. -> Option B
  4. Quick Check:

    NumPy sum faster than list sum = A [OK]
Hint: NumPy uses fast C code for sums, lists use slow Python loops. [OK]
Common Mistakes:
  • Assuming Python sum is faster
  • Thinking both times are equal
  • Believing np.sum cannot sum arrays
4. The following code tries to multiply each element of a Python list by 2 using NumPy syntax but fails. What is the error?
lst = [1, 2, 3, 4]
result = lst * 2
print(result)
medium
A. It raises a TypeError because lists cannot be multiplied.
B. It prints [2, 4, 6, 8] as expected.
C. It prints [1, 2, 3, 4, 1, 2, 3, 4] instead of doubling values.
D. It raises a NameError because 'lst' is undefined.

Solution

  1. Step 1: Understand list multiplication behavior

    Multiplying a Python list by 2 repeats the list elements, it does not multiply each element.
  2. Step 2: Compare with NumPy array behavior

    NumPy arrays multiply each element by 2, but Python lists just repeat the list when multiplied by an integer.
  3. Final Answer:

    It prints [1, 2, 3, 4, 1, 2, 3, 4] instead of doubling values. -> Option C
  4. Quick Check:

    List * 2 repeats list, does not multiply elements = C [OK]
Hint: List * 2 repeats list; use np.array for element-wise multiply. [OK]
Common Mistakes:
  • Expecting element-wise multiplication on lists
  • Thinking it raises an error
  • Confusing list and array multiplication
5. You have a large dataset of 1 million numbers stored as a Python list. You want to compute the mean efficiently. Which approach is best and why?
Option A:
mean = sum(lst) / len(lst)

Option B:
import numpy as np
arr = np.array(lst)
mean = np.mean(arr)

Option C:
mean = sum(lst) // len(lst)

Option D:
mean = np.sum(lst) / len(lst)
hard
A. Convert list to NumPy array and use np.mean for faster computation.
B. Use Python sum and len for mean; it's simple and fast enough.
C. Use integer division with sum and len for mean to speed up.
D. Use np.sum on list directly without conversion for best speed.

Solution

  1. Step 1: Evaluate each option's efficiency

    Use Python sum and len for mean; it's simple and fast enough. uses Python sum which is slower on large lists. Use integer division with sum and len for mean to speed up. uses integer division which loses precision and is not faster. Use np.sum on list directly without conversion for best speed. tries np.sum on a list which works but is slower than on arrays.
  2. Step 2: Identify best performance approach

    Convert list to NumPy array and use np.mean for faster computation. converts the list to a NumPy array and uses np.mean, which is optimized in C and much faster for large numeric data.
  3. Final Answer:

    Convert list to NumPy array and use np.mean for faster computation. -> Option A
  4. Quick Check:

    NumPy array + np.mean fastest for large numeric data = B [OK]
Hint: Convert list to NumPy array for fast numeric operations. [OK]
Common Mistakes:
  • Using integer division losing decimal precision
  • Using np.sum on list without conversion
  • Assuming Python sum is fast enough for large data
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