w3resource

How to save and load a large NumPy array to and from a compressed .npz file?


NumPy: I/O Operations Exercise-11 with Solution


Write a NumPy program that saves a large NumPy array to a compressed .npz file and then reads it back into a NumPy array.

Sample Solution:

Python Code:

import numpy as np

# Create a large NumPy array
data_array = np.random.rand(1000, 1000)

# Define the path to the compressed .npz file
compressed_file_path = 'data_compressed.npz'

# Save the large NumPy array to a compressed .npz file
np.savez_compressed(compressed_file_path, data_array=data_array)

# Load the NumPy array from the compressed .npz file
loaded_data = np.load(compressed_file_path)
loaded_array = loaded_data['data_array']

# Print the original and loaded NumPy arrays
print("Original NumPy Array:")
print(data_array)

print("\nLoaded NumPy Array from Compressed .npz File:")
print(loaded_array)

Output:

Original NumPy Array:
[[0.42411157 0.89311541 0.14227554 ... 0.34292198 0.66140166 0.7117873 ]
 [0.47560704 0.97190361 0.05941864 ... 0.50820546 0.22822676 0.98568349]
 [0.03442543 0.87479321 0.16233207 ... 0.31578898 0.74740725 0.90136316]
 ...
 [0.3721405  0.2293716  0.01759259 ... 0.87295513 0.90359804 0.46607548]
 [0.13659883 0.05339666 0.26766979 ... 0.24272354 0.44563242 0.70060465]
 [0.08349193 0.57621029 0.9926931  ... 0.41319467 0.12608326 0.66274037]]

Loaded NumPy Array from Compressed .npz File:
[[0.42411157 0.89311541 0.14227554 ... 0.34292198 0.66140166 0.7117873 ]
 [0.47560704 0.97190361 0.05941864 ... 0.50820546 0.22822676 0.98568349]
 [0.03442543 0.87479321 0.16233207 ... 0.31578898 0.74740725 0.90136316]
 ...
 [0.3721405  0.2293716  0.01759259 ... 0.87295513 0.90359804 0.46607548]
 [0.13659883 0.05339666 0.26766979 ... 0.24272354 0.44563242 0.70060465]
 [0.08349193 0.57621029 0.9926931  ... 0.41319467 0.12608326 0.66274037]]

Explanation:

  • Import NumPy Library: Import the NumPy library to handle arrays.
  • Create Large NumPy Array: Generate a large NumPy array with random values using np.random.rand().
  • Define Compressed File Path: Specify the path where the compressed .npz file will be saved.
  • Save Array to Compressed .npz File: Use np.savez_compressed() to save the large NumPy array to a compressed .npz file.
  • Load Array from Compressed .npz File: Use np.load() to read the contents of the compressed .npz file back into a NumPy object.
  • Extract Loaded Array: Extract the array from the loaded data using the key used during saving.
  • Finally print the original NumPy array and the loaded array to verify that the data was saved and read correctly.

Python-Numpy Code Editor: