Skip to content

Saving and Loading NumPy Data

Saving arrays lets you:

  • reuse cleaned/processed features
  • speed up workflows (avoid re-parsing CSV)
  • share data between scripts/notebooks

NumPy’s own binary format is .npy (one array) / .npz (multiple arrays) — uncompressed by default, and much faster to reload than re-parsing text.

save
import numpy as np
 
arr = np.arange(10)
np.save("my_array.npy", arr)
load
import numpy as np
 
arr2 = np.load("my_array.npy")
print(arr2)
diagram Choosing a NumPy save format mermaid
Pick .npy/.npz for fast, exact round-trips of array data; use text formats only for simple, human-readable numeric matrices.

If the file path doesn’t end in .npy/.npz, NumPy appends the extension automatically.

npz
import numpy as np
 
x = np.arange(5)
y = np.arange(5) ** 2
 
np.savez("data.npz", x=x, y=y)
 
loaded = np.load("data.npz")
print(loaded.files)
print(loaded["x"], loaded["y"])

If the saved data compresses well, np.savez_compressed produces a smaller file at the cost of a bit more CPU time:

compressed
import numpy as np
 
arr = np.arange(10)
np.savez_compressed("arrays_compressed.npz", a=arr, b=arr)
savetxt
import numpy as np
 
mat = np.array([[1.1, 2.2], [3.3, 4.4]])
np.savetxt("matrix.csv", mat, delimiter=",", fmt="%.2f")
loadtxt
import numpy as np
 
mat2 = np.loadtxt("matrix.csv", delimiter=",")
print(mat2)
  • For best speed and exact dtype preservation: use .npy / .npz.
  • Use .npz when you want one file containing multiple arrays.

Continue to: Conditional Logic, Sorting & Set Logic to express if-style logic as array operations and use sort, unique, and set functions.

Exercise 2 – Save Multiple Arrays with savez

Section titled “Exercise 2 – Save Multiple Arrays with savez”

Exercise 3 – Round-trip Through a Text File

Section titled “Exercise 3 – Round-trip Through a Text File”

pch.coffeeTagline

pch.coffeeCta

pch.feedbackHeading

pch.feedbackSubheading