Bird
Raised Fist0
NumPydata~10 mins

np.savez() for multiple arrays in NumPy - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to save two arrays into a single .npz file using np.savez.

NumPy
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
np.savez('data.npz', [1]=arr1, arr2=arr2)
Drag options to blanks, or click blank then click option'
Aarray1
Bdata1
Carr1
Dfirst
Attempts:
3 left
💡 Hint
Common Mistakes
Using a name that does not match the variable name.
Forgetting to name the first array.
2fill in blank
medium

Complete the code to load the arrays saved in 'data.npz' and print the first array.

NumPy
import numpy as np
loaded = np.load('data.npz')
print(loaded[[1]])
Drag options to blanks, or click blank then click option'
A'arr1'
B'arr2'
C'array1'
D'data1'
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong key name to access the array.
Forgetting to use quotes around the key.
3fill in blank
hard

Fix the error in the code to save three arrays named 'a', 'b', and 'c' into 'arrays.npz'.

NumPy
import numpy as np
a = np.array([1, 2])
b = np.array([3, 4])
c = np.array([5, 6])
np.savez('arrays.npz', a, [1], c)
Drag options to blanks, or click blank then click option'
Aarr_b
Bb
Carray_b
Db_array
Attempts:
3 left
💡 Hint
Common Mistakes
Using a name that does not match the variable.
Forgetting to include the second array.
4fill in blank
hard

Fill both blanks to create a dictionary of array lengths for words longer than 3 characters.

NumPy
words = ['apple', 'bat', 'carrot', 'dog']
lengths = {word: [1] for word in words if len(word) [2] 3}
Drag options to blanks, or click blank then click option'
Alen(word)
B>
C<
Dword
Attempts:
3 left
💡 Hint
Common Mistakes
Using the word itself instead of its length.
Using the wrong comparison operator.
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase keys and values greater than 0.

NumPy
data = {'a': 1, 'b': -2, 'c': 3}
result = [1]: [2] for k, v in data.items() if v [3] 0}
Drag options to blanks, or click blank then click option'
Ak.upper()
Bv
C>
Dk
Attempts:
3 left
💡 Hint
Common Mistakes
Not converting keys to uppercase.
Using the wrong comparison operator.
Using keys instead of values for the dictionary values.

Practice

(1/5)
1. What is the main purpose of np.savez() in NumPy?
easy
A. To save multiple arrays into a single file for easy storage
B. To load arrays from a file
C. To create a new array from existing ones
D. To delete arrays from memory

Solution

  1. Step 1: Understand the function purpose

    np.savez() is used to save multiple arrays into one file, making storage and sharing easier.
  2. Step 2: Compare options with function use

    Loading arrays is done by np.load(), not np.savez(). Creating or deleting arrays is unrelated.
  3. Final Answer:

    To save multiple arrays into a single file for easy storage -> Option A
  4. Quick Check:

    np.savez() saves arrays [OK]
Hint: Remember: savez saves multiple arrays in one file [OK]
Common Mistakes:
  • Confusing np.savez() with np.load()
  • Thinking it creates new arrays
  • Assuming it deletes arrays
2. Which of the following is the correct syntax to save two arrays a and b using np.savez() with names?
easy
A. np.savez('data.npz', a, b)
B. np.savez(a='data.npz', b='data.npz')
C. np.savez('data.npz', a=b)
D. np.savez('data.npz', first=a, second=b)

Solution

  1. Step 1: Recall named saving syntax

    To save arrays with names, use np.savez(filename, name1=array1, name2=array2).
  2. Step 2: Check each option

    np.savez('data.npz', first=a, second=b) uses named arguments correctly. np.savez('data.npz', a, b) saves unnamed arrays. Options B and D misuse argument positions and names.
  3. Final Answer:

    np.savez('data.npz', first=a, second=b) -> Option D
  4. Quick Check:

    Named arrays use name=array [OK]
Hint: Use name=value pairs to save arrays with names [OK]
Common Mistakes:
  • Not using names for arrays
  • Passing arrays as positional but expecting names
  • Mixing argument order
3. What will be the output keys when loading a file saved by np.savez('file.npz', x, y) where x and y are arrays without names?
medium
A. ['arr_0', 'arr_1']
B. ['x', 'y']
C. ['0', '1']
D. ['array1', 'array2']

Solution

  1. Step 1: Understand default naming in np.savez()

    If arrays are saved without names, NumPy assigns default keys like 'arr_0', 'arr_1', etc.
  2. Step 2: Match output keys

    Since x and y were saved unnamed, keys will be 'arr_0' and 'arr_1'. Named keys like 'x' or 'y' appear only if explicitly named.
  3. Final Answer:

    ['arr_0', 'arr_1'] -> Option A
  4. Quick Check:

    Unnamed arrays get keys arr_0, arr_1 [OK]
Hint: Unnamed arrays get keys arr_0, arr_1, ... by default [OK]
Common Mistakes:
  • Assuming variable names become keys automatically
  • Expecting numeric string keys
  • Using arbitrary names without naming arrays
4. Identify the error in this code snippet:
import numpy as np
x = np.array([1,2])
y = np.array([3,4])
np.savez('data.npz', x, y)
loaded = np.load('data.npz')
print(loaded['x'])
medium
A. SyntaxError in np.savez() call
B. KeyError because 'x' was not saved with a name
C. FileNotFoundError when loading 'data.npz'
D. No error, prints array x

Solution

  1. Step 1: Check how arrays were saved

    Arrays x and y were saved without names, so keys are 'arr_0' and 'arr_1'.
  2. Step 2: Analyze the loading and key access

    Trying to access loaded['x'] causes a KeyError because 'x' is not a key in the file.
  3. Final Answer:

    KeyError because 'x' was not saved with a name -> Option B
  4. Quick Check:

    Unnamed arrays have keys arr_0, arr_1 [OK]
Hint: Access keys as arr_0 if arrays saved without names [OK]
Common Mistakes:
  • Assuming variable names are keys automatically
  • Ignoring KeyError on wrong key access
  • Confusing save and load syntax
5. You want to save three arrays a, b, and c into one file with names 'first', 'second', and 'third'. Later, you want to load and print the sum of all elements from these arrays. Which code correctly does this?
hard
A. np.savez('arrays.npz', first=a, second=b, third=c) loaded = np.load('arrays.npz') total = sum(loaded.values()) print(total)
B. np.savez('arrays.npz', a, b, c) loaded = np.load('arrays.npz') total = loaded['a'].sum() + loaded['b'].sum() + loaded['c'].sum() print(total)
C. np.savez('arrays.npz', first=a, second=b, third=c) loaded = np.load('arrays.npz') total = loaded['first'].sum() + loaded['second'].sum() + loaded['third'].sum() print(total)
D. np.savez('arrays.npz', a=a, b=b, c=c) loaded = np.load('arrays.npz') total = loaded['first'] + loaded['second'] + loaded['third'] print(total)

Solution

  1. Step 1: Save arrays with correct names

    np.savez('arrays.npz', first=a, second=b, third=c) loaded = np.load('arrays.npz') total = loaded['first'].sum() + loaded['second'].sum() + loaded['third'].sum() print(total) saves arrays with names 'first', 'second', 'third' matching the requirement.
  2. Step 2: Load and sum elements correctly

    np.savez('arrays.npz', first=a, second=b, third=c) loaded = np.load('arrays.npz') total = loaded['first'].sum() + loaded['second'].sum() + loaded['third'].sum() print(total) accesses arrays by correct keys and sums elements using .sum(). Other options either use wrong keys or incorrect summing methods.
  3. Final Answer:

    np.savez('arrays.npz', first=a, second=b, third=c) loaded = np.load('arrays.npz') total = loaded['first'].sum() + loaded['second'].sum() + loaded['third'].sum() print(total) -> Option C
  4. Quick Check:

    Save with names, load by names, sum elements [OK]
Hint: Save with names, load by names, sum with .sum() [OK]
Common Mistakes:
  • Using wrong keys when loading
  • Trying to sum arrays directly without .sum()
  • Saving arrays without names but accessing by names